1- 'use strict' ;
2-
3-
1+ "use strict" ;
42
53// element toggle function
6- const elementToggleFunc = function ( elem ) { elem . classList . toggle ( "active" ) ; }
7-
8-
4+ const elementToggleFunc = function ( elem ) {
5+ elem . classList . toggle ( "active" ) ;
6+ } ;
97
108// sidebar variables
119const sidebar = document . querySelector ( "[data-sidebar]" ) ;
1210const sidebarBtn = document . querySelector ( "[data-sidebar-btn]" ) ;
1311
1412// sidebar toggle functionality for mobile
15- sidebarBtn . addEventListener ( "click" , function ( ) { elementToggleFunc ( sidebar ) ; } ) ;
16-
17-
13+ sidebarBtn . addEventListener ( "click" , function ( ) {
14+ elementToggleFunc ( sidebar ) ;
15+ } ) ;
1816
1917// testimonials variables
2018const testimonialsItem = document . querySelectorAll ( "[data-testimonials-item]" ) ;
@@ -31,92 +29,78 @@ const modalText = document.querySelector("[data-modal-text]");
3129const testimonialsModalFunc = function ( ) {
3230 modalContainer . classList . toggle ( "active" ) ;
3331 overlay . classList . toggle ( "active" ) ;
34- }
32+ } ;
3533
3634// add click event to all modal items
3735for ( let i = 0 ; i < testimonialsItem . length ; i ++ ) {
38-
3936 testimonialsItem [ i ] . addEventListener ( "click" , function ( ) {
40-
4137 modalImg . src = this . querySelector ( "[data-testimonials-avatar]" ) . src ;
4238 modalImg . alt = this . querySelector ( "[data-testimonials-avatar]" ) . alt ;
43- modalTitle . innerHTML = this . querySelector ( "[data-testimonials-title]" ) . innerHTML ;
44- modalText . innerHTML = this . querySelector ( "[data-testimonials-text]" ) . innerHTML ;
39+ modalTitle . innerHTML = this . querySelector (
40+ "[data-testimonials-title]"
41+ ) . innerHTML ;
42+ modalText . innerHTML = this . querySelector (
43+ "[data-testimonials-text]"
44+ ) . innerHTML ;
4545
4646 testimonialsModalFunc ( ) ;
47-
4847 } ) ;
49-
5048}
5149
52-
53-
5450// add click event to modal close button
5551modalCloseBtn . addEventListener ( "click" , testimonialsModalFunc ) ;
5652overlay . addEventListener ( "click" , testimonialsModalFunc ) ;
5753
58-
59-
6054// custom select variables
6155const select = document . querySelector ( "[data-select]" ) ;
6256const selectItems = document . querySelectorAll ( "[data-select-item]" ) ;
6357const selectValue = document . querySelector ( "[data-selecct-value]" ) ;
6458const filterBtn = document . querySelectorAll ( "[data-filter-btn]" ) ;
6559
66- select . addEventListener ( "click" , function ( ) { elementToggleFunc ( this ) ; } ) ;
60+ select . addEventListener ( "click" , function ( ) {
61+ elementToggleFunc ( this ) ;
62+ } ) ;
6763
6864// add event in all select items
6965for ( let i = 0 ; i < selectItems . length ; i ++ ) {
7066 selectItems [ i ] . addEventListener ( "click" , function ( ) {
71-
7267 let selectedValue = this . innerText . toLowerCase ( ) ;
7368 selectValue . innerText = this . innerText ;
7469 elementToggleFunc ( select ) ;
7570 filterFunc ( selectedValue ) ;
76-
7771 } ) ;
7872}
7973
8074// filter variables
8175const filterItems = document . querySelectorAll ( "[data-filter-item]" ) ;
8276
8377const filterFunc = function ( selectedValue ) {
84-
8578 for ( let i = 0 ; i < filterItems . length ; i ++ ) {
86-
8779 if ( selectedValue === "all" ) {
8880 filterItems [ i ] . classList . add ( "active" ) ;
89- } else if ( selectedValue === filterItems [ i ] . dataset . category ) {
81+ } else if ( filterItems [ i ] . dataset . category . includes ( selectedValue ) ) {
9082 filterItems [ i ] . classList . add ( "active" ) ;
9183 } else {
9284 filterItems [ i ] . classList . remove ( "active" ) ;
9385 }
94-
9586 }
96-
97- }
87+ } ;
9888
9989// add event in all filter button items for large screen
10090let lastClickedBtn = filterBtn [ 0 ] ;
10191
10292for ( let i = 0 ; i < filterBtn . length ; i ++ ) {
103-
10493 filterBtn [ i ] . addEventListener ( "click" , function ( ) {
105-
10694 let selectedValue = this . innerText . toLowerCase ( ) ;
10795 selectValue . innerText = this . innerText ;
10896 filterFunc ( selectedValue ) ;
10997
11098 lastClickedBtn . classList . remove ( "active" ) ;
11199 this . classList . add ( "active" ) ;
112100 lastClickedBtn = this ;
113-
114101 } ) ;
115-
116102}
117103
118-
119-
120104// contact form variables
121105const form = document . querySelector ( "[data-form]" ) ;
122106const formInputs = document . querySelectorAll ( "[data-form-input]" ) ;
@@ -125,27 +109,22 @@ const formBtn = document.querySelector("[data-form-btn]");
125109// add event to all form input field
126110for ( let i = 0 ; i < formInputs . length ; i ++ ) {
127111 formInputs [ i ] . addEventListener ( "input" , function ( ) {
128-
129112 // check form validation
130113 if ( form . checkValidity ( ) ) {
131114 formBtn . removeAttribute ( "disabled" ) ;
132115 } else {
133116 formBtn . setAttribute ( "disabled" , "" ) ;
134117 }
135-
136118 } ) ;
137119}
138120
139-
140-
141121// page navigation variables
142122const navigationLinks = document . querySelectorAll ( "[data-nav-link]" ) ;
143123const pages = document . querySelectorAll ( "[data-page]" ) ;
144124
145125// add event to all nav link
146126for ( let i = 0 ; i < navigationLinks . length ; i ++ ) {
147127 navigationLinks [ i ] . addEventListener ( "click" , function ( ) {
148-
149128 for ( let i = 0 ; i < pages . length ; i ++ ) {
150129 if ( this . innerHTML . toLowerCase ( ) === pages [ i ] . dataset . page ) {
151130 pages [ i ] . classList . add ( "active" ) ;
@@ -156,6 +135,5 @@ for (let i = 0; i < navigationLinks.length; i++) {
156135 navigationLinks [ i ] . classList . remove ( "active" ) ;
157136 }
158137 }
159-
160138 } ) ;
161- }
139+ }
0 commit comments