pull/8/head
Rayhân HASSOU 1 year ago
parent 45ab6bd7d3
commit da6c25d296

@ -1,42 +1,45 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import {StyleSheet,Pressable, Text, View, Image} from 'react-native'; import { View, StyleSheet, Pressable, Image, Text } from 'react-native';
import bracketLeft from '../assets/images/angle_bracket_left.png'; import bracketLeft from '../assets/images/angle_bracket_left.png';
import bracketRight from '../assets/images/angle_bracket_right.png'; import bracketRight from '../assets/images/angle_bracket_right.png';
import parameter from '../assets/images/parameter.png'; import parameter from '../assets/images/parameter.png';
import FoodElementText from './FoodElementText'; import FoodElementText from './FoodElementText';
interface selectedIngredientProps { interface SelectedIngredientProps {
listeIngredient : string[] listeIngredient: string[];
listeImage : string[] listeImage: string[];
onEvent: (value: string) => void;
} }
export default function SelectedIngredient(props : any) { export default function SelectedIngredient(props: SelectedIngredientProps) {
const [cpt, setCpt] = useState(0); const [cpt, setCpt] = useState(0);
const decreaseCounter = () => { const decreaseCounter = () => {
if (cpt > 0) { if (cpt > 0) {
setCpt(cpt - 1); setCpt(cpt - 1);
} } else {
else{ setCpt(props.listeIngredient.length - 1);
setCpt( props.listeIngredient.length - 1);
} }
}; };
const increaseCounter = () => { const increaseCounter = () => {
if (cpt < props.listeIngredient.length - 1) { if (cpt < props.listeIngredient.length - 1) {
setCpt(cpt + 1); setCpt(cpt + 1);
}else{ } else {
setCpt(0); setCpt(0);
} }
}; };
const handlePress = () => {
// Supposons que vous voulez envoyer la valeur 'Hello' au parent
props.onEvent('Hello');
};
return ( return (
<View style={styles.view}> <View style={styles.view}>
<View id="Top" style={styles.horizontalAlignement}> <View id="Top" style={styles.horizontalAlignement}>
<Text style={styles.text}>Selected ingredients</Text> <Text style={styles.text}>Selected ingredients</Text>
<Pressable> <Pressable onPress={handlePress}>
<Image source={parameter} style={{ width: 15, height: 15 }} /> <Image source={parameter} style={{ width: 15, height: 15 }} />
</Pressable> </Pressable>
</View> </View>
@ -58,22 +61,22 @@ export default function SelectedIngredient(props : any) {
const styles = StyleSheet.create({ const styles = StyleSheet.create({
view: { view: {
width : 350, width: 350,
height: 110, height: 110,
borderRadius: 15, borderRadius: 15,
elevation: 3, elevation: 3,
borderWidth: 2, borderWidth: 1,
borderColor: 'black', borderColor: 'black',
display: "flex", display: 'flex',
flexWrap: "wrap", flexWrap: 'wrap',
backgroundColor: '#E3DEC9', backgroundColor: '#E3DEC9',
}, },
horizontalAlignement: { horizontalAlignement: {
display: "flex", display: 'flex',
height : 30, height: 30,
width: 350, width: 350,
flexDirection : 'row', flexDirection: 'row',
justifyContent : 'space-around', justifyContent: 'space-around',
alignItems: 'center', alignItems: 'center',
marginTop: 10, marginTop: 10,
}, },
@ -83,7 +86,5 @@ const styles = StyleSheet.create({
fontWeight: 'bold', fontWeight: 'bold',
letterSpacing: 0.25, letterSpacing: 0.25,
color: 'black', color: 'black',
} },
}); });

@ -1,7 +1,5 @@
import React, { startTransition } from 'react'; import React from 'react';
import {StyleSheet,Pressable, Text, View, Image} from 'react-native';
import { Appbar } from 'react-native-paper'; import { Appbar } from 'react-native-paper';
import backward from '../assets/images/backward_arrows.png';
interface TopBarProps{ interface TopBarProps{
source : string source : string
@ -20,7 +18,7 @@ interface TopBarProps{
return ( return (
<Appbar.Header style={{backgroundColor: '#F2F0E4'}} > <Appbar.Header style={{backgroundColor: '#F2F0E4'}} >
<Appbar.BackAction onPress={_goBack} /> <Appbar.BackAction onPress={_goBack} />
<Appbar.Content title="Title" /> <Appbar.Content title="Recipes" />
<Appbar.Action icon="magnify" onPress={_handleSearch} /> <Appbar.Action icon="magnify" onPress={_handleSearch} />
<Appbar.Action icon="dots-vertical" onPress={_handleMore} /> <Appbar.Action icon="dots-vertical" onPress={_handleMore} />
</Appbar.Header> </Appbar.Header>

@ -1,46 +1,92 @@
import React from 'react'; import React, { useState } from 'react';
import {StyleSheet, View} from 'react-native'; import { View, StyleSheet, Text, Image} from 'react-native';
import LinearGradient from 'react-native-linear-gradient';
import TopBar from '../components/TopBar';
import { SafeAreaProvider } from 'react-native-safe-area-context'; import { SafeAreaProvider } from 'react-native-safe-area-context';
import SelectedIngredient from '../components/SelectedIngredient'; import { Modal, Portal, PaperProvider } from 'react-native-paper';
import TopBar from '../components/TopBar';
import RecipeElement from '../components/RecipeElement'; import RecipeElement from '../components/RecipeElement';
import SelectedIngredient from '../components/SelectedIngredient';
import FoodElementText from '../components/FoodElementText';
import brochette from '../assets/images/brochette.png';
interface RecipeSuggestionProps{
source : string
firstImage : string
lastImage : string
}
export default function RecipeSuggestion(props : any) { export default function RecipeSuggestion(props) {
const imageList = [];
const [visible, setVisible] = React.useState(false);
const showModal = () => setVisible(true);
const hideModal = () => setVisible(false);
const containerStyle = {
backgroundColor: 'white',
height: 350,
width: 350,
};
const handleChildEvent = (value) => {
setVisible(!visible)
};
const imageList=[]
return ( return (
<SafeAreaProvider> <SafeAreaProvider>
<TopBar></TopBar> <TopBar />
<View style={styles.page}> <View style={styles.page}>
<SelectedIngredient listeIngredient={props.list} imageList={imageList} style={styles.element}></SelectedIngredient> <SelectedIngredient
<View style={{marginTop: 100}}> listeIngredient={props.list}
<RecipeElement number="13" title="Pizza with Pineaples" imageList={imageList} textList={props.list} description="delicious plate that will please you" style={styles.element}></RecipeElement> listeImage={imageList}
onEvent={handleChildEvent}
/>
<View style={{ marginTop: 100 }}>
<RecipeElement
number="13"
title="Pizza with Pineapples"
imageList={imageList}
textList={props.list}
description="delicious plate that will please you"
style={styles.element}
/>
</View> </View>
</View> </View>
<View style={styles.modal}>
<PaperProvider>
<Portal>
<Modal visible={visible} onDismiss={hideModal} contentContainerStyle={containerStyle}>
<View style={styles.page}>
<View>
<FoodElementText title="test"></FoodElementText>
<Image source={brochette} style={{ width: 10, height: 10 }}/>
</View>
<FoodElementText title="test"></FoodElementText>
<FoodElementText title="test"></FoodElementText>
<FoodElementText title="test"></FoodElementText>
<FoodElementText title="test"></FoodElementText>
</View>
</Modal>
</Portal>
</PaperProvider>
</View>
</SafeAreaProvider> </SafeAreaProvider>
); );
} }
const styles = StyleSheet.create({ const styles = StyleSheet.create({
page: { page: {
flex: 1, flex: 1,
backgroundColor: '#59BDCD', backgroundColor: '#59BDCD',
alignItems: 'center', alignItems: 'center',
display: "flex", display: 'flex',
flexWrap: "wrap", flexWrap: 'wrap',
padding: 20, padding: 20,
}, },
element: { element: {
marginTop: 20, marginTop: 20,
},
backdrop: {
backgroundColor: 'rgba(0, 0, 0, 0.5)',
},
modal :{
position: 'absolute',
top: '50%', // Centre verticalement
left: '50%', // Centre horizontalement
transform: [{ translateX: -150 }, { translateY: -150 }], // Ajustez en fonction de la moitié de la hauteur et de la largeur
} }
}); });

Loading…
Cancel
Save