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) {
const colors = useContext(ColorContext).colors
const changeStatus = () => {
props.changeStatusWaiting()
}
let imageSource
if(props.avatar == ""){
imageSource=require("../assets/images/logo.png")
@ -86,7 +82,7 @@ export default function ProfileElement(props : Profile) {
});
return (
<Pressable onPress={changeStatus} style={styles.button}>
<Pressable onPress={props.changeStatusWaiting} style={styles.button}>
<View>
<View style={styles.pseudoBar}>
<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) {
const {colors} = useContext(ColorContext);
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"}]
@ -23,7 +23,7 @@ export default function FiltersSelection(props) {
const [allProfiles, setAllProfiles] = useState([])
const [dieAdd, setDieAdd] = useState([])
const [allAdd, setAllAdd] = useState([])
const [selectedDiets, setSelectedDiets] = useState([]);
const [selectedDiets, setSelectedDiets] = useState([])
const handleGetProfiles = async () => {
try {
@ -38,20 +38,30 @@ export default function FiltersSelection(props) {
const fetchProfiles = async () => {
const existingProfiles = await handleGetProfiles()
setProfiles(existingProfiles)
console.log("FetchProfiles:",profiles)
console.log("FetchProfiles const:",existingProfiles)
};
const subscription = EventEmitter.addListener('profileAdded', async () => {
fetchProfiles()
});
useEffect(() => {
fetchProfiles()
console.log("UseEffect:",profiles)
let cptSubscription = 1
const subscriptionUpdateDietsAllergies = EventEmitter.addListener('updateDietsAllergies', async () => {
updateDiets()
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 () => {
@ -68,10 +78,11 @@ export default function FiltersSelection(props) {
val.isWaiting = "none"
})
await AsyncStorage.setItem('profiles', JSON.stringify(profiles));
EventEmitter.emit('selectedProfilesUpdated');
//EventEmitter.emit('selectedProfilesUpdated')
//EventEmitter.emit("updateDietsAllergies")
fetchProfiles()
updateDiets()
setDieAdd(die.filter(isInProfileDiets))
updateAllergies()
} catch (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 () => {
fetchProfiles()
updateDiets()
setDieAdd(die.filter(isInProfileDiets))
});
const updateDiets = () => {
@ -87,10 +100,10 @@ export default function FiltersSelection(props) {
profiles.forEach((profile) => {
if(profile.isActive == "flex"){
profile.diets.forEach((diet) => {
console.log("Diet:",diet)
retType = true
dieTemp.forEach((val) => {
if(val.value == diet.value){
console.log("Value DieTemp:",val)
if(val.value == diet){
retType = false
}
})
@ -100,15 +113,7 @@ export default function FiltersSelection(props) {
})
}
})
console.log("========================================")
console.log("DieTemp:",dieTemp)
setDieProfiles(dieTemp)
console.log("DieProfiles:",dieProfiles)
console.log("========================================")
}
const updateAllergies = () => {
setAllAdd([])
}
const changeStatusWaiting = (cpt) => {
@ -119,7 +124,6 @@ export default function FiltersSelection(props) {
profiles[cpt].isWaiting = "none"
}
handleSaveWaiting()
EventEmitter.emit("changeSeparatorStatus")
}
const handleSaveWaiting = async () => {

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

Loading…
Cancel
Save