# Conflicts: # package-lock.json # package.jsonpull/9/head
After Width: | Height: | Size: 752 B |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 409 B |
After Width: | Height: | Size: 397 B |
After Width: | Height: | Size: 284 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 284 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 221 KiB |
After Width: | Height: | Size: 525 B |
@ -0,0 +1,48 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import {StyleSheet,Pressable, Text, View} from 'react-native';
|
||||||
|
|
||||||
|
|
||||||
|
interface CustomButtonProps {
|
||||||
|
source : string
|
||||||
|
title : string
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function CustomButton(props) {
|
||||||
|
return (
|
||||||
|
<Pressable style={styles.button}>
|
||||||
|
<View style={styles.view}>
|
||||||
|
<Text style={styles.text}>{props.title}</Text>
|
||||||
|
</View>
|
||||||
|
</Pressable>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
button: {
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
width : 150,
|
||||||
|
height: 40,
|
||||||
|
borderRadius: 4,
|
||||||
|
elevation: 3,
|
||||||
|
backgroundColor: 'rgba(0, 0, 0, 0.7)',
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
fontSize: 15,
|
||||||
|
lineHeight: 21,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
letterSpacing: 0.25,
|
||||||
|
color: 'white',
|
||||||
|
},
|
||||||
|
view: {
|
||||||
|
width : 145,
|
||||||
|
height: 35,
|
||||||
|
borderRadius: 4,
|
||||||
|
elevation: 3,
|
||||||
|
borderWidth: 1,
|
||||||
|
borderColor: 'grey',
|
||||||
|
alignItems: 'center', // Centre le contenu verticalement
|
||||||
|
justifyContent: 'center', // Centre le contenu horizontalement
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,66 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import {StyleSheet,Pressable, Text, View, Image} from 'react-native';
|
||||||
|
import Separator from '../components/Separator';
|
||||||
|
import plus from '../assets/images/plus.png';
|
||||||
|
import moins from '../assets/images/minus.png';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
interface foodElementImageProps {
|
||||||
|
source : string
|
||||||
|
title : string
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export default function FoodElementText(props : any) {
|
||||||
|
return (
|
||||||
|
<Pressable style={styles.button}>
|
||||||
|
<View style={styles.container}>
|
||||||
|
<View style={styles.view}>
|
||||||
|
<Text style={styles.text}>{props.title}</Text>
|
||||||
|
<Separator/>
|
||||||
|
|
||||||
|
</View>
|
||||||
|
<Image source={plus} style={{width: 40, height: 40}}/>
|
||||||
|
</View>
|
||||||
|
</Pressable>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
button: {
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
width : 350,
|
||||||
|
height: 60,
|
||||||
|
borderRadius: 5,
|
||||||
|
elevation: 3,
|
||||||
|
backgroundColor: '#E3DEC9',
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
fontSize: 15,
|
||||||
|
lineHeight: 21,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
letterSpacing: 0.25,
|
||||||
|
padding : 7,
|
||||||
|
color: 'black',
|
||||||
|
},
|
||||||
|
view: {
|
||||||
|
|
||||||
|
alignItems: 'flex-start',
|
||||||
|
justifyContent: 'center',
|
||||||
|
marginRight: 5 // Centre le contenu horizontalement
|
||||||
|
},
|
||||||
|
container: {
|
||||||
|
width : 340,
|
||||||
|
height: 50,
|
||||||
|
borderRadius: 5,
|
||||||
|
elevation: 3,
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: 'black',
|
||||||
|
flexDirection: 'row',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
|
@ -0,0 +1,97 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import {StyleSheet,Pressable, Text, View, Image} from 'react-native';
|
||||||
|
import brochette from '../assets/images/brochette.png';
|
||||||
|
import Union_left from '../assets/images/Union_left.png';
|
||||||
|
import Union_right from '../assets/images/Union_right.png';
|
||||||
|
import background from '../assets/images/Background.png';
|
||||||
|
|
||||||
|
|
||||||
|
interface recipeElementImageProps {
|
||||||
|
number : number
|
||||||
|
title : string
|
||||||
|
description : string
|
||||||
|
imageList : string[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function RecipeElementImage(props : any) {
|
||||||
|
return (
|
||||||
|
<Pressable style={styles.button}>
|
||||||
|
<View style={styles.view}>
|
||||||
|
<Text style={styles.text}>{props.number}</Text>
|
||||||
|
<Text style={styles.title}>{props.title}</Text>
|
||||||
|
<Image source={props.image ? props.image : brochette} style={{ width: 100, height: 100 }}/>
|
||||||
|
{props.imageList.length > 0 ? (
|
||||||
|
<View style={styles.horizontalAlignement}>
|
||||||
|
<Image source={Union_left} style={{ width: 70, height: 4, marginRight: 6 }} />
|
||||||
|
<Text style={styles.smallText}>Ingredients</Text>
|
||||||
|
<Image source={Union_right} style={{ width: 70, height: 4, marginLeft: 6 }} />
|
||||||
|
</View>
|
||||||
|
) : null}
|
||||||
|
|
||||||
|
<View style={styles.horizontalAlignement}>
|
||||||
|
{props.imageList.length > 0 && props.imageList.map((source, index) => (
|
||||||
|
<Image key={index} source={source} style={{ width: 40, height: 40 }} />
|
||||||
|
))}
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View style={{alignItems: 'center', justifyContent: 'center'}}>
|
||||||
|
<Text style={styles.smallText}>{props.description}</Text>
|
||||||
|
</View>
|
||||||
|
<Image source={background} style={{width: 210, height: 20, marginTop: 300, position: 'absolute'}}></Image>
|
||||||
|
</View>
|
||||||
|
</Pressable>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
button: {
|
||||||
|
alignItems: 'center',
|
||||||
|
justifyContent: 'center',
|
||||||
|
width : 250,
|
||||||
|
height: 350,
|
||||||
|
borderRadius: 40,
|
||||||
|
elevation: 3,
|
||||||
|
backgroundColor: '#E3DEC9',
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
fontSize: 14,
|
||||||
|
lineHeight: 21,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
letterSpacing: 0.25,
|
||||||
|
color: '#756C28',
|
||||||
|
marginTop: 10,
|
||||||
|
},
|
||||||
|
smallText: {
|
||||||
|
fontSize: 12,
|
||||||
|
lineHeight: 21,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
letterSpacing: 0.25,
|
||||||
|
color: '#71662A',
|
||||||
|
textAlign: "center",
|
||||||
|
marginTop: 5,
|
||||||
|
},
|
||||||
|
title:{
|
||||||
|
fontSize: 18,
|
||||||
|
lineHeight: 21,
|
||||||
|
fontWeight: 'bold',
|
||||||
|
letterSpacing: 0.25,
|
||||||
|
color: '#524B1A',
|
||||||
|
},
|
||||||
|
view: {
|
||||||
|
width : 240,
|
||||||
|
height: 340,
|
||||||
|
borderRadius: 40,
|
||||||
|
elevation: 3,
|
||||||
|
borderWidth: 2,
|
||||||
|
borderColor: 'grey',
|
||||||
|
alignItems: 'center', // Centre le contenu verticalement
|
||||||
|
display: "flex",
|
||||||
|
flexWrap: "wrap",
|
||||||
|
},
|
||||||
|
horizontalAlignement: {
|
||||||
|
display: "flex",
|
||||||
|
flexDirection : 'row',
|
||||||
|
alignItems: 'center',
|
||||||
|
marginTop: 10,
|
||||||
|
}
|
||||||
|
});
|
@ -0,0 +1,17 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import {StyleSheet, View} from 'react-native';
|
||||||
|
|
||||||
|
export default function Separator (){
|
||||||
|
return <View style={styles.separator} />;
|
||||||
|
};
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
separator: {
|
||||||
|
width: 250, // Largeur de la ligne
|
||||||
|
backgroundColor: 'black', // Couleur de la ligne
|
||||||
|
borderWidth : 1,
|
||||||
|
marginLeft : 10,
|
||||||
|
marginRight : 10,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
@ -0,0 +1,4 @@
|
|||||||
|
declare module "*.png";
|
||||||
|
declare module "*.svg";
|
||||||
|
declare module "*.jpeg";
|
||||||
|
declare module "*.jpg";
|
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {},
|
||||||
|
"extends": "expo/tsconfig.base"
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "LeftOvers",
|
"dependencies": {
|
||||||
"lockfileVersion": 2,
|
"@eva-design/eva": "^2.2.0",
|
||||||
"requires": true,
|
"@ui-kitten/components": "^5.3.1",
|
||||||
"packages": {}
|
"react-native-svg": "^13.14.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|