@@ -69,6 +69,15 @@ const SearchBar = () => {
69
69
setSuggestions ( [ ] ) ;
70
70
} ;
71
71
72
+ // Handle ingredient removal from the selected list
73
+ const handleIngredientRemove = ( ingredientId ) => {
74
+ const updatedIngredients = selectedIngredients . filter (
75
+ ( ingredient ) => ingredient . id !== ingredientId
76
+ ) ;
77
+ setSelectedIngredients ( updatedIngredients ) ;
78
+ fetchRecipes ( updatedIngredients . map ( ( ing ) => ing . id ) , matchType ) ;
79
+ } ;
80
+
72
81
// Handle match type change and re-fetch recipes
73
82
const handleMatchTypeChange = ( type ) => {
74
83
setMatchType ( type ) ;
@@ -79,7 +88,6 @@ const SearchBar = () => {
79
88
80
89
return (
81
90
< div className = "w-full bg-white p-8 rounded-lg shadow-md max-w-full mt-8 mx-auto" >
82
-
83
91
{ /* Input Field */ }
84
92
< div className = "relative mb-6" >
85
93
< input
@@ -104,6 +112,29 @@ const SearchBar = () => {
104
112
) }
105
113
</ div >
106
114
115
+ { /* Selected Ingredients Section */ }
116
+ { selectedIngredients . length > 0 && (
117
+ < div className = "mb-6" >
118
+ < h5 className = "font-semibold mb-2" > Selected Ingredients:</ h5 >
119
+ < div className = "flex flex-wrap gap-2" >
120
+ { selectedIngredients . map ( ( ingredient ) => (
121
+ < div
122
+ key = { ingredient . id }
123
+ className = "flex items-center p-2 bg-blue-100 rounded-lg text-sm"
124
+ >
125
+ { ingredient . name }
126
+ < button
127
+ onClick = { ( ) => handleIngredientRemove ( ingredient . id ) }
128
+ className = "ml-2 text-red-500 hover:text-red-700"
129
+ >
130
+ ×
131
+ </ button >
132
+ </ div >
133
+ ) ) }
134
+ </ div >
135
+ </ div >
136
+ ) }
137
+
107
138
{ /* Match Type Selection */ }
108
139
< div className = "mb-6" >
109
140
< div className = "flex items-center gap-6" >
0 commit comments