11const searchForm = document . querySelector ( "form" ) ;
22const searchResultDiv = document . querySelector ( ".search-result" ) ;
33const container = document . querySelector ( ".container" ) ;
4+ const accordionHeadings = document . querySelectorAll ( '.accordion-heading' ) ;
45let searchQuery = "" ;
56const APP_ID = '33b1a0ef' ;
67const APP_key = '5e12645236de1c7eb43b725fd06a49ee' ;
7- //console.log(container);
88
99searchForm . addEventListener ( "submit" , ( e ) => {
1010 e . preventDefault ( ) ;
1111 searchQuery = e . target . querySelector ( "input" ) . value ;
1212 fetchAPI ( ) ;
13- //console.log(searchQuery);
1413} ) ;
1514
1615async function fetchAPI ( ) {
1716 const baseURL = `https://api.edamam.com/search?q=${ searchQuery } &app_id=${ APP_ID } &app_key=${ APP_key } &from=0&to=100` ;
1817 const response = await fetch ( baseURL ) ;
1918 const data = await response . json ( ) ;
2019 generateHTML ( data . hits ) ;
21- //console.log(data);
2220}
23-
2421function generateHTML ( results ) {
2522 container . classList . remove ( "initial" ) ;
2623 let generatedHTML = "" ;
@@ -34,16 +31,31 @@ function generateHTML(results) {
3431 result . recipe . url
3532 } ">View Recipe</a>
3633 </div>
37- <p class="item-data">Calories : ${ result . recipe . calories . toFixed ( 2 ) } </p>
38- <p class="item-data">Diet label : ${
39- result . recipe . dietLabels . length > 0
40- ? result . recipe . dietLabels
41- : "No Data Found"
42- } </p>
43- <p class="item-data">Health labels : ${ result . recipe . healthLabels } </p>
34+ <p class="item-data">Calories: ${ result . recipe . calories . toFixed ( 2 ) } </p>
35+ <div class="accordion">
36+ <div class="accordion-item">
37+ <h3 class="accordion-heading">Diet Labels</h3>
38+ <div class="accordion-content">
39+ <p class="item-data">${ result . recipe . dietLabels . length > 0 ? result . recipe . dietLabels : "No Data Found" } </p>
40+ </div>
41+ </div>
42+ <div class="accordion-item">
43+ <h3 class="accordion-heading">Health Labels</h3>
44+ <div class="accordion-content">
45+ <p class="item-data">${ result . recipe . healthLabels } </p>
46+ </div>
47+ </div>
48+ </div>
4449 </div>
4550 ` ;
4651 } ) ;
4752 searchResultDiv . innerHTML = generatedHTML ;
48- }
4953
54+ // Add event listeners to accordion headings
55+ const accordionHeadings = document . querySelectorAll ( '.accordion-heading' ) ;
56+ accordionHeadings . forEach ( ( heading ) => {
57+ heading . addEventListener ( 'click' , ( ) => {
58+ heading . nextElementSibling . classList . toggle ( 'active' ) ;
59+ } ) ;
60+ } ) ;
61+ }
0 commit comments