From 85257e9c367e60f66330bbdb96692fab2208874a Mon Sep 17 00:00:00 2001 From: Colin Burn-Murdoch Date: Tue, 22 Jun 2021 07:29:17 -0400 Subject: [PATCH] Refactor toggleHeading to be clearer about it's intentions isOpen was initially set, to the *current* state. Subsequent controls were inverting that. If we invert it at the beginning this becomes clearer Note - also renamed to setOpen to signify intent. --- .../javascripts/_modules/collapsible-navigation.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/assets/javascripts/_modules/collapsible-navigation.js b/lib/assets/javascripts/_modules/collapsible-navigation.js index 3e3214ac..df242b79 100644 --- a/lib/assets/javascripts/_modules/collapsible-navigation.js +++ b/lib/assets/javascripts/_modules/collapsible-navigation.js @@ -47,14 +47,15 @@ } function toggleHeading ($topLevelItem) { - var isOpen = $topLevelItem.hasClass('is-open') + var setOpen = !$topLevelItem.hasClass('is-open') + var $heading = $topLevelItem.find('> a') var $button = $topLevelItem.find('.collapsible__toggle') var $toggleLabel = $topLevelItem.find('.collapsible__toggle-label') - $topLevelItem.toggleClass('is-open', !isOpen) - $button.attr('aria-expanded', isOpen ? 'false' : 'true') - $toggleLabel.text(isOpen ? 'Expand ' + $heading.text() : 'Collapse ' + $heading.text()) + $topLevelItem.toggleClass('is-open', setOpen) + $button.attr('aria-expanded', setOpen ? 'true' : 'false') + $toggleLabel.text(setOpen ? 'Collapse ' + $heading.text() : 'Expand ' + $heading.text()) } function openActiveHeading () {