From 34115df4611e401209fe405e6b443a284eaca68c Mon Sep 17 00:00:00 2001 From: Stephanie Thompson <43892794+Rocklobster84@users.noreply.github.com> Date: Sun, 21 Apr 2024 18:36:39 -0500 Subject: [PATCH] Updated Dietary Allergen Filters to write an array of objects to an endpoint --- screens/DietaryAllergenFilter.jsx | 176 +++++++++++++++++++++++++++--- 1 file changed, 162 insertions(+), 14 deletions(-) diff --git a/screens/DietaryAllergenFilter.jsx b/screens/DietaryAllergenFilter.jsx index 1074800..9696078 100644 --- a/screens/DietaryAllergenFilter.jsx +++ b/screens/DietaryAllergenFilter.jsx @@ -1,27 +1,175 @@ -import { SafeAreaView, ScrollView, StyleSheet, View } from 'react-native'; -import DietaryFilters from '../containers/DietaryFilters'; -import AllergenFilters from '../containers/AllergenFilters'; +import React, { useState } from 'react'; +import { SafeAreaView, ScrollView, StyleSheet, View, Text } from 'react-native'; import AcctHeader from '../components/AcctHeader'; -import MainButton from '../components/MainButton'; +import { CheckBox } from '@rneui/themed'; +import CategoryButton from '../components/CategoryButton'; import Nav from '../components/Nav'; import { useNavigation } from '@react-navigation/native'; -export const DietaryAllergenFilter = () => { +export const DietaryAllergenFilterScreen = () => { + const navigation = useNavigation(); + + const [categories, setCategories] = useState([ + { + id: 0, + preference_name: 'Gluten Free', + key: 'Gluten Free', + isCheck: false, + }, + { + id: 1, + preference_name: 'Ketogenic', + key: 'Ketogenic', + isCheck: false, + }, + { + id: 2, + preference_name: 'Vegetarian', + key: 'Vegetarian', + isCheck: false, + }, + { + id: 3, + preference_name: 'Lacto-Vegetarian', + key: 'Lacto-Vegetarian', + isCheck: false, + }, + { + id: 4, + preference_name: 'Ovo-Vegetarian', + key: 'Ovo-Vegetarian', + isCheck: false, + }, + { + id: 5, + preference_name: 'Vegan', + key: 'Vegan', + isCheck: false, + }, + { + id: 6, + preference_name: 'Pescetarian', + key: 'Pescetarian', + isCheck: false, + }, + { + id: 7, + preference_name: 'Paleo', + key: 'Paleo', + isCheck: false, + }, + { + id: 8, + preference_name: 'Primal', + key: 'Primal', + isCheck: false, + }, + { + id: 9, + preference_name: 'Low FODMAP', + key: 'Low FODMAP', + isCheck: false, + }, + { + id: 10, + preference_name: 'Whole30', + key: 'Whole30', + isCheck: false, + }, + ]); + + const onValueChange = (item, index) => { + const newCategory = [...categories]; + newCategory[index].isCheck = !item.isCheck; + setCategories(newCategory); + return newCategory; + }; + + const handleSave = () => { + const dietaryFiltersData = categories; + + const filterData = { + dietaryFilters: dietaryFiltersData, + }; + + const response = fetch( + 'http://localhost:8000/api/users/{user_pk}/dietaryPreferences/{id}', + { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(filterData), + } + ); + //if (!response.ok) { + // throw new Error('Failed to save filters'); + //} + + //console.log('Filters saved successfully'); + }; + return ( - - - - + + + + + + + Dietary Requirements + + {categories.map((item, index) => { + return ( + onValueChange(item, index)} + key={item.key} + name={item.name} + id={item.id} + /> + ); + })} + + + + handleSave()} /> + + + + +