Filters Optimisation
continuous-integration/drone/push Build is passing Details

WORK-RRE
Louison PARANT 1 year ago
parent 8c73ee53a6
commit 5d6a6041f4

@ -15,10 +15,6 @@ type Profile = {
export default function ProfileElement(props : Profile) { export default function ProfileElement(props : Profile) {
const colors = useContext(ColorContext).colors const colors = useContext(ColorContext).colors
const changeStatus = () => {
props.changeStatusWaiting()
}
let imageSource let imageSource
if(props.avatar == ""){ if(props.avatar == ""){
imageSource=require("../assets/images/logo.png") imageSource=require("../assets/images/logo.png")
@ -86,7 +82,7 @@ export default function ProfileElement(props : Profile) {
}); });
return ( return (
<Pressable onPress={changeStatus} style={styles.button}> <Pressable onPress={props.changeStatusWaiting} style={styles.button}>
<View> <View>
<View style={styles.pseudoBar}> <View style={styles.pseudoBar}>
<Image source={imageSource} style={styles.avatar}></Image> <Image source={imageSource} style={styles.avatar}></Image>

@ -14,7 +14,7 @@ import AsyncStorage from '@react-native-async-storage/async-storage';
export default function FiltersSelection(props) { export default function FiltersSelection(props) {
const {colors} = useContext(ColorContext); const {colors} = useContext(ColorContext);
const profilesHand = [ const profilesHand = [
{name: "None", avatar: "logo.png", diets: [], allergies: [], isActive: "none", isWaiting: "none"}, {name: "None", avatar: "logo.png", diets: [], allergies: [], isActive: "none", isWaiting: "none"},
] ]
const die = [{value: "Dairy free"}, {value: "Gluten free"}, {value: "Porkless"}, {value: "Vegan"}, {value: "Vegetarian"}, {value: "Pescatarian"}] const die = [{value: "Dairy free"}, {value: "Gluten free"}, {value: "Porkless"}, {value: "Vegan"}, {value: "Vegetarian"}, {value: "Pescatarian"}]
@ -23,7 +23,7 @@ export default function FiltersSelection(props) {
const [allProfiles, setAllProfiles] = useState([]) const [allProfiles, setAllProfiles] = useState([])
const [dieAdd, setDieAdd] = useState([]) const [dieAdd, setDieAdd] = useState([])
const [allAdd, setAllAdd] = useState([]) const [allAdd, setAllAdd] = useState([])
const [selectedDiets, setSelectedDiets] = useState([]); const [selectedDiets, setSelectedDiets] = useState([])
const handleGetProfiles = async () => { const handleGetProfiles = async () => {
try { try {
@ -38,20 +38,30 @@ export default function FiltersSelection(props) {
const fetchProfiles = async () => { const fetchProfiles = async () => {
const existingProfiles = await handleGetProfiles() const existingProfiles = await handleGetProfiles()
setProfiles(existingProfiles) setProfiles(existingProfiles)
console.log("FetchProfiles:",profiles)
console.log("FetchProfiles const:",existingProfiles)
}; };
const subscription = EventEmitter.addListener('profileAdded', async () => { const subscription = EventEmitter.addListener('profileAdded', async () => {
fetchProfiles() fetchProfiles()
}); });
useEffect(() => { let cptSubscription = 1
fetchProfiles()
console.log("UseEffect:",profiles) const subscriptionUpdateDietsAllergies = EventEmitter.addListener('updateDietsAllergies', async () => {
updateDiets() updateDiets()
setDieAdd(die.filter(isInProfileDiets)) setDieAdd(die.filter(isInProfileDiets))
updateAllergies() console.log("Passage Subsciption:", cptSubscription)
//EventEmitter.emit('updateDiets')
});
let cptSubscriptionDiets = 1
const subscriptionUpdateDiets = EventEmitter.addListener('updateDiets', async () => {
setDieAdd(die.filter(isInProfileDiets))
console.log("Passage SubsciptionDiets:", cptSubscriptionDiets)
});
useEffect(() => {
fetchProfiles()
}, []); }, []);
const handleSaveSelectedProfiles = async () => { const handleSaveSelectedProfiles = async () => {
@ -68,10 +78,11 @@ export default function FiltersSelection(props) {
val.isWaiting = "none" val.isWaiting = "none"
}) })
await AsyncStorage.setItem('profiles', JSON.stringify(profiles)); await AsyncStorage.setItem('profiles', JSON.stringify(profiles));
EventEmitter.emit('selectedProfilesUpdated'); //EventEmitter.emit('selectedProfilesUpdated')
//EventEmitter.emit("updateDietsAllergies")
fetchProfiles()
updateDiets() updateDiets()
setDieAdd(die.filter(isInProfileDiets)) setDieAdd(die.filter(isInProfileDiets))
updateAllergies()
} catch (error) { } catch (error) {
console.error('Error occured when updating active profiles:', error); console.error('Error occured when updating active profiles:', error);
} }
@ -79,6 +90,8 @@ export default function FiltersSelection(props) {
const subscriptionUpdateSelectedProfiles = EventEmitter.addListener('selectedProfilesUpdated', async () => { const subscriptionUpdateSelectedProfiles = EventEmitter.addListener('selectedProfilesUpdated', async () => {
fetchProfiles() fetchProfiles()
updateDiets()
setDieAdd(die.filter(isInProfileDiets))
}); });
const updateDiets = () => { const updateDiets = () => {
@ -87,10 +100,10 @@ export default function FiltersSelection(props) {
profiles.forEach((profile) => { profiles.forEach((profile) => {
if(profile.isActive == "flex"){ if(profile.isActive == "flex"){
profile.diets.forEach((diet) => { profile.diets.forEach((diet) => {
console.log("Diet:",diet)
retType = true retType = true
dieTemp.forEach((val) => { dieTemp.forEach((val) => {
if(val.value == diet.value){ console.log("Value DieTemp:",val)
if(val.value == diet){
retType = false retType = false
} }
}) })
@ -100,15 +113,7 @@ export default function FiltersSelection(props) {
}) })
} }
}) })
console.log("========================================")
console.log("DieTemp:",dieTemp)
setDieProfiles(dieTemp) setDieProfiles(dieTemp)
console.log("DieProfiles:",dieProfiles)
console.log("========================================")
}
const updateAllergies = () => {
setAllAdd([])
} }
const changeStatusWaiting = (cpt) => { const changeStatusWaiting = (cpt) => {
@ -119,7 +124,6 @@ export default function FiltersSelection(props) {
profiles[cpt].isWaiting = "none" profiles[cpt].isWaiting = "none"
} }
handleSaveWaiting() handleSaveWaiting()
EventEmitter.emit("changeSeparatorStatus")
} }
const handleSaveWaiting = async () => { const handleSaveWaiting = async () => {

@ -227,7 +227,7 @@ export default function RecipeSuggestion({ route, navigation }) {
</ScrollView> </ScrollView>
</View> </View>
) : ( ) : (
selectedRecipes.map((recipe, index) => ( selectedRecipes.map((recipe) => (
<View style={{ marginRight: 10, marginLeft: 20}} key={recipe.id}> <View style={{ marginRight: 10, marginLeft: 20}} key={recipe.id}>
<RecipeElement <RecipeElement
key={recipe.id} key={recipe.id}

Loading…
Cancel
Save