feat: makes the AI nutrition search optional
This commit is contained in:
@@ -290,6 +290,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-group checkbox-group">
|
||||||
|
<label class="checkbox-label">
|
||||||
|
<input type="checkbox" id="enableAINutrition" class="ai-checkbox">
|
||||||
|
<span>Show AI nutrition information</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- AI Nutrition Info Card -->
|
<!-- AI Nutrition Info Card -->
|
||||||
<div class="display-none" id="ai-nutrition-card">
|
<div class="display-none" id="ai-nutrition-card">
|
||||||
|
|||||||
+23
-1
@@ -217,6 +217,20 @@ async function handleClearCache() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleAICheckboxChange(e: Event) {
|
||||||
|
const checkbox = e.target as HTMLInputElement;
|
||||||
|
|
||||||
|
if (checkbox.checked) {
|
||||||
|
// If a food is already selected, load its AI nutrition info
|
||||||
|
if (selectedFood) {
|
||||||
|
loadAINutritionInfo(selectedFood.name);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Hide the AI nutrition card
|
||||||
|
hideAINutritionCard();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function handleLogout() {
|
async function handleLogout() {
|
||||||
showLoading();
|
showLoading();
|
||||||
|
|
||||||
@@ -468,6 +482,9 @@ const setupEventListeners = () => {
|
|||||||
// Clear cache button
|
// Clear cache button
|
||||||
getButtonById('clearCacheBtn')?.addEventListener('click', handleClearCache);
|
getButtonById('clearCacheBtn')?.addEventListener('click', handleClearCache);
|
||||||
|
|
||||||
|
// AI nutrition checkbox
|
||||||
|
document.getElementById('enableAINutrition')?.addEventListener('change', handleAICheckboxChange);
|
||||||
|
|
||||||
// Share button event listeners
|
// Share button event listeners
|
||||||
getButtonById('shareBtn').addEventListener('click', handleShareClick);
|
getButtonById('shareBtn').addEventListener('click', handleShareClick);
|
||||||
getButtonById('shareBtnMobile').addEventListener('click', handleShareClick);
|
getButtonById('shareBtnMobile').addEventListener('click', handleShareClick);
|
||||||
@@ -688,8 +705,13 @@ function selectFood(food: FoodItem) {
|
|||||||
// Show cancel button so user can clear selection
|
// Show cancel button so user can clear selection
|
||||||
getButtonById('cancel-food-btn').style.display = 'inline-block';
|
getButtonById('cancel-food-btn').style.display = 'inline-block';
|
||||||
|
|
||||||
// Load AI nutrition info for the selected food
|
// Load AI nutrition info only if checkbox is checked
|
||||||
|
const aiCheckbox = document.getElementById('enableAINutrition') as HTMLInputElement;
|
||||||
|
if (aiCheckbox && aiCheckbox.checked) {
|
||||||
loadAINutritionInfo(food.name);
|
loadAINutritionInfo(food.name);
|
||||||
|
} else {
|
||||||
|
hideAINutritionCard();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function setFoodToEdit(foodId: string) {
|
async function setFoodToEdit(foodId: string) {
|
||||||
|
|||||||
@@ -461,6 +461,36 @@ label {
|
|||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.checkbox-group {
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-label {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #e0e0e0;
|
||||||
|
font-weight: 400;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ai-checkbox {
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
margin-right: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
accent-color: #6B8DD6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-label span {
|
||||||
|
font-size: 0.95rem;
|
||||||
|
color: #b0b0b0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-label:hover span {
|
||||||
|
color: #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
.add-btn {
|
.add-btn {
|
||||||
padding: 17px 25px;
|
padding: 17px 25px;
|
||||||
background: linear-gradient(135deg, #4CAF50, #45a049);
|
background: linear-gradient(135deg, #4CAF50, #45a049);
|
||||||
|
|||||||
Reference in New Issue
Block a user