diff --git a/addons/website/static/src/js/content/snippets.animation.js b/addons/website/static/src/js/content/snippets.animation.js index 2316f1138a1..ea84cd953d0 100644 --- a/addons/website/static/src/js/content/snippets.animation.js +++ b/addons/website/static/src/js/content/snippets.animation.js @@ -1146,6 +1146,42 @@ registry.FooterSlideout = publicWidget.Widget.extend({ }, }); +registry.TopMenuCollapse = publicWidget.Widget.extend({ + selector: "header #top_menu_collapse", + + /** + * @override + */ + async start() { + this.throttledResize = throttleForAnimation(() => this._onResize()); + window.addEventListener("resize", this.throttledResize); + return this._super(...arguments); + }, + /** + * @override + */ + destroy() { + this._super(...arguments); + window.removeEventListener("resize", this.throttledResize); + }, + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * @private + */ + _onResize() { + if (this.el.classList.contains("show")) { + const togglerEl = this.el.closest("nav").querySelector(".navbar-toggler"); + if (getComputedStyle(togglerEl).display === "none") { + this.$el.collapse("hide"); + } + } + }, +}); + registry.HeaderHamburgerFull = publicWidget.Widget.extend({ selector: 'header:has(.o_header_hamburger_full_toggler):not(:has(.o_offcanvas_menu_toggler))', events: {