@@ -38,6 +38,47 @@ class MainSiteNav extends React.Component {
38
38
} ;
39
39
hideAll ( ) ; //hide all when page first loads
40
40
41
+ for ( let i = 0 ; i < subMenus . length ; i ++ ) {
42
+ const otherMenus = document . getElementsByClassName ( "c-sub-menu" ) ;
43
+ const target = subMenus [ i ] . getAttribute ( "data-submenu" ) ;
44
+ const subMenuContainer = document . getElementById ( target ) ;
45
+
46
+ subMenus [ i ] . addEventListener ( "click" , target => {
47
+ const hideSubMenus = ( ) => {
48
+ Object . keys ( otherMenus ) . map ( target => {
49
+ const om = otherMenus [ target ] ;
50
+ return (
51
+ om !== subMenuContainer &&
52
+ om . classList . add ( "visually-hidden" , "visibility-hidden" ) +
53
+ document . body . classList . remove ( "active" )
54
+ ) ;
55
+ } ) ;
56
+ } ;
57
+
58
+ hideSubMenus ( ) ;
59
+
60
+ if ( subMenuContainer !== null ) { // if this subcontainer exists
61
+ if ( ! subMenuContainer . classList . contains ( "visually-hidden" ) ) { // if this submenu is currently active
62
+ subMenuContainer . classList . add ( "visually-hidden" , "visibility-hidden" ) ;
63
+ subMenuContainer . classList . remove ( "active" ) ;
64
+ if ( target === "sub-menu--mobile" ) {
65
+ document . getElementById ( "o-menu__link--mobile" ) . classList . remove ( "active" ) ;
66
+ }
67
+ } else { // if this submenu is not currently active
68
+ subMenuContainer . classList . remove (
69
+ "visually-hidden" ,
70
+ "visibility-hidden"
71
+ ) ;
72
+
73
+ subMenuContainer . classList . add ( "active" ) ;
74
+ if ( target === "sub-menu--mobile" ) {
75
+ document . getElementById ( "o-menu__link--mobile" ) . classList . add ( "active" ) ;
76
+ }
77
+ }
78
+ }
79
+ } ) ;
80
+ }
81
+
41
82
header . addEventListener ( "click" , e => {
42
83
const otherMenus = document . getElementsByClassName ( "c-sub-menu" ) ;
43
84
const target = e . target . getAttribute ( "data-submenu" ) ;
0 commit comments