Skip to content

Commit 8ed1e95

Browse files
committed
Updating-Recipe Finder
1 parent 7f595b4 commit 8ed1e95

4 files changed

Lines changed: 106 additions & 16 deletions

File tree

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,23 @@
11
const searchForm = document.querySelector("form");
22
const searchResultDiv = document.querySelector(".search-result");
33
const container = document.querySelector(".container");
4+
const accordionHeadings = document.querySelectorAll('.accordion-heading');
45
let searchQuery = "";
56
const APP_ID = '33b1a0ef';
67
const APP_key = '5e12645236de1c7eb43b725fd06a49ee';
7-
//console.log(container);
88

99
searchForm.addEventListener("submit", (e) => {
1010
e.preventDefault();
1111
searchQuery = e.target.querySelector("input").value;
1212
fetchAPI();
13-
//console.log(searchQuery);
1413
});
1514

1615
async 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-
2421
function 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+
}

Projects/Recipe Finder/assets/scroll.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
::-webkit-scrollbar-thumb {
88
background-color: rgba(195, 195, 195, 0);
99
border-radius: 0px;
10-
}
10+
}

Projects/Recipe Finder/assets/style.css

Lines changed: 80 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
box-sizing: border-box;
77
}
88

9-
109
img {
1110
width: 100%;
1211
height: 100%;
@@ -118,7 +117,8 @@ input {
118117
}
119118

120119
.view-btn:hover {
121-
box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.295);
120+
box-shadow: 2px 10px 20px rgba(222, 38, 201, 0.295);
121+
color: rgb(233, 37, 181);
122122
}
123123

124124
.item-data {
@@ -153,8 +153,86 @@ input {
153153
.container.initial form {
154154
max-width: 500px;
155155
}
156+
.accordion-heading {
157+
min-width: 540px;
158+
}
156159
.container.initial form input {
157160
padding: 10px;
158161
font-size: 2rem;
159162
}
160163
}
164+
165+
.accordion {
166+
border-radius: 7px;
167+
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(3, 3, 3, 0.23);
168+
list-style-type: none;
169+
padding: 0;
170+
overflow: hidden;
171+
margin-top: 3px;
172+
}
173+
174+
.accordion-item p {
175+
color: #fff;
176+
font-weight: 30;
177+
letter-spacing: 0.2px;
178+
margin: 0;
179+
padding: 20px 15px;
180+
position: relative;
181+
}
182+
183+
.accordion-item:nth-child(1) .accordion-heading {
184+
background-color: #f5d4df;
185+
}
186+
.accordion-item:nth-child(2) .accordion-heading {
187+
background-color: #fa9fbdf5;
188+
}
189+
190+
.accordion-item .accordion-heading::before {
191+
color: rgb(19, 7, 7);
192+
font-weight: bold;
193+
float: right;
194+
margin-right: 5px;
195+
transform: rotate(0);
196+
transition: transform 0.3s ease-in-out;
197+
}
198+
199+
.accordion-item.open .accordion-heading::before {
200+
transform: rotate(90deg);
201+
}
202+
203+
.accordion-item {
204+
border-bottom: 1px solid #ddbdbd;
205+
}
206+
207+
.accordion-heading {
208+
background-color: #f4f4f4;
209+
padding: 10px;
210+
margin: 0;
211+
cursor: pointer;
212+
background-color: #fceded;
213+
font-size: 10px;
214+
cursor: pointer;
215+
width: 500px;
216+
font-family: Georgia, 'Times New Roman', Times, serif;
217+
}
218+
219+
.accordion-heading p {
220+
display: none;
221+
letter-spacing: 1px;
222+
margin: 0;
223+
padding: 15px;
224+
text-align: justify;
225+
}
226+
227+
.accordion-content {
228+
display: none;
229+
padding: 10px;
230+
}
231+
232+
.accordion-content.active {
233+
display: block;
234+
}
235+
236+
.accordion-heading.open p {
237+
display: inline-block;
238+
}

Projects/Recipe Finder/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ <h1 class="brand">Recipe Finder</h1>
2828
</section>
2929
<script src="https://unpkg.com/ionicons@5.1.2/dist/ionicons.js"></script>
3030
<script src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script>
31-
<script src="assets/script.js"></script>
31+
<script src="assets/script.js"></script>
3232
</body>
3333
</html>

0 commit comments

Comments
 (0)