From 0df424e77bc327d4a311576c56350347fd271a5c Mon Sep 17 00:00:00 2001 From: Stephen Nelson Date: Thu, 12 Mar 2020 13:28:52 +1030 Subject: [PATCH] Fix: Trigger drilldown resize when opening tray overlay Port drilldown resize code from tray-push component to tray-overlay component. This resolves an issue where navigation menu does not show when the page has been resized over the desktop/mobile breakpoint. --- .../javascripts/components/tray-overlay.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/test/dummy/app/frontend/javascripts/components/tray-overlay.js b/test/dummy/app/frontend/javascripts/components/tray-overlay.js index f122cd36..c06f6d1c 100644 --- a/test/dummy/app/frontend/javascripts/components/tray-overlay.js +++ b/test/dummy/app/frontend/javascripts/components/tray-overlay.js @@ -93,7 +93,10 @@ // Add the transition and opening classes Tray.$classTarget.classList.add(Tray.classes.transitioning); Tray.$classTarget.classList.add(Tray.classes.open); - + + // Resize Drilldowns + Tray.resizeDrilldowns(); + // Wait until transition is completed and remove the transitioning class Tray.transitionTimer = setTimeout(function(){ Tray.$classTarget.classList.remove(Tray.classes.transitioning); @@ -212,12 +215,23 @@ }); }, + resizeDrilldowns: function(){ + if (Ornament.C.Drilldown && Tray.$drilldowns) { + Tray.$drilldowns.forEach(function ($drilldown) { + Ornament.triggerEvent($drilldown, Ornament.C.Drilldown.triggerNamespace + ":resize"); + }); + } + }, + init: function(){ Tray.$buttons = document.querySelectorAll("[" + Tray.selectors.buttons + "]"); Tray.$closeButtons = document.querySelectorAll("[" + Tray.selectors.closeButtons + "]"); Tray.$scrollPusher = document.querySelector("[" + Tray.selectors.scrollPusher + "]"); Tray.$classTarget = document.body; Tray.$overlay = document.querySelector("[" + Tray.selectors.overlay + "]"); + if(Tray.$overlay) { + Tray.$drilldowns = Tray.$overlay.querySelectorAll("[data-drilldown-init]"); + } // Bind Toggle Buttons Tray.forEachButton(function($button) {