from FileHandler import read_ingredient_json, combine_ingredients, write_checklist import flet as ft selected_meals = {} meal_json = read_ingredient_json() def selector(page: ft.Page): def update_meal_selection(event): for meal in meal_list: if meal.value == False: if meal.label in selected_meals: selected_meals.pop(meal.label) else: selected_meals[meal.label] = meal_json[meal.label] if selected_meals == {}: page.show_dialog(ft.SnackBar(ft.Text("Please select at least one meal."))) return write_checklist(combine_ingredients(selected_meals)) page.title = "Select Some Meals" meal_list = [] for name, _ in meal_json.items(): meal_list.append(ft.Checkbox( label = name, active_color = '#6da0cd', ) ) submit_button = ft.Button(content=ft.Text("Make Shopping List"), on_click=update_meal_selection) page.controls[0].content = ft.Column( controls = [ ft.ListView( controls=meal_list, expand=True, spacing=10, padding=10, ), submit_button, ], height = 700, expand = False, ) page.update() if __name__ == "__main__": ft.app(selector)