From 8f79508a11d170bcef59e9979a789e3220698148 Mon Sep 17 00:00:00 2001 From: Louison PARANT Date: Tue, 14 Nov 2023 15:06:38 +0100 Subject: [PATCH] Profile Component --- LeftOvers/App.tsx | 34 ++++--- LeftOvers/assets/images/plus.png | Bin 2633 -> 3225 bytes LeftOvers/assets/images/plus_small.png | Bin 0 -> 2633 bytes LeftOvers/assets/images/update.png | Bin 0 -> 9840 bytes LeftOvers/components/AllergiesTab.tsx | 102 +++++++++++++++++++ LeftOvers/components/DietsTab.tsx | 97 ++++++++++++++++++ LeftOvers/components/ListTab.tsx | 8 +- LeftOvers/components/ProfileModification.tsx | 9 +- LeftOvers/components/ValidateButton.tsx | 6 +- LeftOvers/package-lock.json | 15 +++ LeftOvers/package.json | 2 + 11 files changed, 250 insertions(+), 23 deletions(-) create mode 100644 LeftOvers/assets/images/plus_small.png create mode 100644 LeftOvers/assets/images/update.png create mode 100644 LeftOvers/components/AllergiesTab.tsx create mode 100644 LeftOvers/components/DietsTab.tsx diff --git a/LeftOvers/App.tsx b/LeftOvers/App.tsx index 5b25c8c..0b62476 100644 --- a/LeftOvers/App.tsx +++ b/LeftOvers/App.tsx @@ -2,17 +2,18 @@ import React from 'react'; import {StyleSheet, View } from 'react-native'; import ProfileModification from './components/ProfileModification'; import ValidateButton from './components/ValidateButton'; +import { LinearGradient } from 'expo-linear-gradient'; export default function App() { - const all = [{title: "Mussels"}, {title: "Skimmed Milk"}, {title: "Nuts"}] - const die = [{title: "Dairy free"}, {title: "Gluten free"}, {title: "Porkless"}, {title: "Vegan"}, {title: "Vegetarian"}, {title: "Pescatarian"}] + const all = [{value: "Mussels"}, {value: "Skimmed Milk"}, {value: "Nuts"}] + const die = [{value: "Dairy free"}, {value: "Gluten free"}, {value: "Porkless"}, {value: "Vegan"}, {value: "Vegetarian"}, {value: "Pescatarian"}] return ( - - - - - + + + + + ); } @@ -24,11 +25,14 @@ const styles = StyleSheet.create({ alignItems: 'center', justifyContent: 'center', }, - background: { - height: 844, - width: 390, - backgroundColor: "linear-gradient(#59BDCD, #59BDCD)", - alignItems: 'center', - justifyContent: 'flex-start', - } -}); + linearGradient: { + //height: 844, + //width: 390, + flex: 1, + padding: 10, + paddingTop: 0, + //backgroundColor: "#59BDCD", + //alignItems: 'center', + //justifyContent: 'flex-start', + }, +}); \ No newline at end of file diff --git a/LeftOvers/assets/images/plus.png b/LeftOvers/assets/images/plus.png index 1b3d0f2dabd9dd071249d8db3e6e8ef2808dbcac..e054b4265afb20fda551219807e131db4c9bff47 100644 GIT binary patch literal 3225 zcmeH}`%jZs7{{Ntg%*%f6cmxGnSz^x&Q7^gKv8r?YRnQqZk>VP6r@@$t(5jv=a_*N z)G2l{YT_cv^t7)QrwGgte$mgNh&iOeizRxKKBdBD2B?Tbm%|4DDua+>!}kdX8?+fIYJEsE0idSFeXN*3Oicmyaj}7Gv1xbEl#vLoYMyFnb}w^2pgu+PQrSXw{}=)%UX(?) zLuxa@-?hm*z_n>}Fy}_Gaq`Xd7J$*pU4nVhwgED|B@mIAXZGJ{+E38&B*C({Q7ZU8e4fjYmbkaSY$LFm z`?bn8A&gv+<=W|SoX5I>OcL*YzwF)uQ8DC8GYc$+sgA+YLcTr6Qo4+wQ`US-5>eP< z^(lNsh{)3S0L*utokp4ZU%85xA?TPoz=E%&^vqTaQyJPGIW}eKn|(mXNb|z9G;>8+ zaA+Y?7jEG*KvDAGgkyCB6%Pn@;L6g|bD<1IzTJfZTRWvP$Pp6{(DTwETNwwk#6EV2 z?>d{NQ%Wx=YijYG=4PzbzM8}9s*I#WtJuST*E*Lz^V`*I2X@M|G4H&rQgOx0N zO|u&4*kQd4frrK%71P%CuDe+*5xR@l_(2=R+?_ztXR0btNPrlCYxXh1HbS-TTMhGxpzTy!pUb(^y|35pi zHCYt42}izeb$%(J6nC89@??IPzfR|e!ym1R|4He<{Mr#n0#gP`Wk^`}Y8bg*%W3KK1>K&y6r?VN$eX9awqOqLpY-fA zpYN78BMJjWeMC+7hzswey%1;C-V;U!_~W@_GFfk2hyBaHBF)(*+*y!_nq{Hw0L?zB zonZrd;beRN)z;P??5_Gr?P@~&GppOOIz#(dZcnQq!N^x<28DFF@l;opq49yKJNC@> z_^wBl)2h7Ka#0KxU5&jJ3{}j=-dqm0F0<{vZ00hV+<)iR-c4Eo?h3GPcXDFGPS*Lq E0Fh2x1^@s6 literal 2633 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 +} + +export default function AllergiesTab(props: AllergiesProps) { + const [selected, setSelected] = React.useState([]); + const data = [ + {key:'1', value:'Dairy free'}, + {key:'2', value:'Gluten free'}, + {key:'3', value:'Porkless'}, + {key:'4', value:'Vegan'}, + {key:'5', value:'Vegetatian'}, + {key:'6', value:'Pescatarian'}, + ] + return ( + } + boxStyles={styles.titleBar} + inputStyles={styles.title} + dropdownStyles={styles.itemList} + dropdownItemStyles={styles.itemCell} + dropdownTextStyles={styles.itemText} + checkBoxStyles={styles.box} + placeholder={props.title} + label={props.title}/> + ); +} + +const styles = StyleSheet.create({ + titleBar: { + flexDirection: "row", + alignItems: "center", + justifyContent: "stretch", + minHeight: 25, + backgroundColor: "#F2F0E4", + borderTopRightRadius: 15, + borderTopLeftRadius: 15, + borderBottomRightRadius: 0, + borderBottomLeftRadius: 0, + borderWidth: 2, + borderColor: "#ACA279", + width: 330, + marginBottom: 0, + overflow: "hidden", + }, + arrow: { + height: 20, + width: 20, + resizeMode: 'contain', + tintColor: "#3F3C42", + flex: 0.1, + }, + title: { + fontSize: 15, + color: '#3F3C42', + alignItems: 'center', + textAlign: "left", + flex: 0.9, + }, + + itemList: { + //flexDirection: "row", + alignItems: "flex-start", + //justifyContent: "stretch", + borderWidth: 0, + borderTopRightRadius: 0, + borderTopLeftRadius: 0, + borderBottomRightRadius: 15, + borderBottomLeftRadius: 15, + backgroundColor: "#E3DEC9", + width: 330, + }, + itemCell: { + maxHeight: 30, + flex: 1, + padding: 0, + paddingLeft: 10, + }, + itemText: { + fontSize: 13, + textAlign: "left", + flex: 1, + padding: 5, + paddingLeft: 10, + color: "#3F3C42", + }, + + box: { + borderWidth: 0, + flex: 0, + } +}); \ No newline at end of file diff --git a/LeftOvers/components/DietsTab.tsx b/LeftOvers/components/DietsTab.tsx new file mode 100644 index 0000000..4caaac7 --- /dev/null +++ b/LeftOvers/components/DietsTab.tsx @@ -0,0 +1,97 @@ +import React from 'react'; +import {StyleSheet, Text, TextInput, View, Image, FlatList} from 'react-native'; +import ValidateButton from './ValidateButton'; +import HeaderFlatList from './HeaderFlatList'; +import { MultipleSelectList, SelectList } from 'react-native-dropdown-select-list' + +type DietsProps = { + title: string + content : list +} + +export default function DietsTab(props: DietsProps) { + const [selected, setSelected] = React.useState([]); + const data = [ + {key:'1', value:'Dairy free'}, + {key:'2', value:'Gluten free'}, + {key:'3', value:'Porkless'}, + {key:'4', value:'Vegan'}, + {key:'5', value:'Vegetatian'}, + {key:'6', value:'Pescatarian'}, + ] + return ( + setSelected(val)} + data={props.content} + save="value" + search={false} + arrowicon={} + boxStyles={styles.titleBar} + inputStyles={styles.title} + dropdownStyles={styles.itemList} + dropdownItemStyles={styles.itemCell} + dropdownTextStyles={styles.itemText} + placeholder={props.title} + label={props.title}/> + ); +} + +const styles = StyleSheet.create({ + titleBar: { + flexDirection: "row", + alignItems: "center", + justifyContent: "stretch", + minHeight: 25, + backgroundColor: "#F2F0E4", + borderTopRightRadius: 15, + borderTopLeftRadius: 15, + borderBottomRightRadius: 0, + borderBottomLeftRadius: 0, + borderWidth: 2, + borderColor: "#ACA279", + width: 330, + marginBottom: 0, + overflow: "hidden", + }, + arrow: { + height: 20, + width: 20, + resizeMode: 'contain', + tintColor: "#3F3C42", + flex: 0.1, + }, + title: { + fontSize: 15, + color: '#3F3C42', + alignItems: 'center', + textAlign: "left", + flex: 0.9, + }, + + itemList: { + //flexDirection: "row", + alignItems: "flex-start", + //justifyContent: "stretch", + borderWidth: 0, + borderTopRightRadius: 0, + borderTopLeftRadius: 0, + borderBottomRightRadius: 15, + borderBottomLeftRadius: 15, + backgroundColor: "#E3DEC9", + width: 330, + }, + itemCell: { + maxHeight: 30, + flex: 1, + padding: 0, + paddingLeft: 10, + }, + itemText: { + fontSize: 13, + textAlign: "left", + flex: 1, + padding: 5, + paddingLeft: 10, + color: "#3F3C42", + }, +}); \ No newline at end of file diff --git a/LeftOvers/components/ListTab.tsx b/LeftOvers/components/ListTab.tsx index 7ae4a44..4d10c5e 100644 --- a/LeftOvers/components/ListTab.tsx +++ b/LeftOvers/components/ListTab.tsx @@ -8,11 +8,11 @@ type ListProps = { content : list } -type ItemProps = {title: string} +type ItemProps = {value: string} -const Item = ({title}: ItemProps) => ( +const Item = ({value}: ItemProps) => ( - {title} + {value} ) @@ -20,7 +20,7 @@ export default function ListTab(props: ListProps) { return ( - } ListHeaderComponent={}/> + } ListHeaderComponent={}/> ); diff --git a/LeftOvers/components/ProfileModification.tsx b/LeftOvers/components/ProfileModification.tsx index df7dec0..f7391b3 100644 --- a/LeftOvers/components/ProfileModification.tsx +++ b/LeftOvers/components/ProfileModification.tsx @@ -2,6 +2,8 @@ import React from 'react'; import {StyleSheet, Text, TextInput, View, Image} from 'react-native'; import ValidateButton from './ValidateButton'; import ListTab from './ListTab'; +import DietsTab from './DietsTab'; +import AllergiesTab from './AllergiesTab'; type ProfileProps = { name: string @@ -22,6 +24,10 @@ export default function ProfileModification(props: ProfileProps) { Filters 3 selected + + + + @@ -48,8 +54,7 @@ const styles = StyleSheet.create({ marginBottom: 10, }, avatar: { - height: 45, - width: 45, + padding: 20, resizeMode: 'contain', borderWidth: 2, borderColor: "#ACA279", diff --git a/LeftOvers/components/ValidateButton.tsx b/LeftOvers/components/ValidateButton.tsx index b0801d9..de00a10 100644 --- a/LeftOvers/components/ValidateButton.tsx +++ b/LeftOvers/components/ValidateButton.tsx @@ -25,8 +25,10 @@ export default function ValidateButton(props: ValidateButtonProps) { padding: 5, paddingRight: 10,}}> diff --git a/LeftOvers/package-lock.json b/LeftOvers/package-lock.json index 9c11e5c..c75e7ca 100644 --- a/LeftOvers/package-lock.json +++ b/LeftOvers/package-lock.json @@ -11,11 +11,13 @@ "@expo/webpack-config": "^19.0.0", "@types/react": "~18.2.14", "expo": "~49.0.15", + "expo-linear-gradient": "~12.3.0", "expo-splash-screen": "~0.20.5", "expo-status-bar": "~1.6.0", "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.72.6", + "react-native-dropdown-select-list": "^2.0.5", "react-native-splash-screen": "^3.3.0", "react-native-web": "~0.19.6", "typescript": "^5.1.3" @@ -9049,6 +9051,14 @@ "expo": "*" } }, + "node_modules/expo-linear-gradient": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-12.3.0.tgz", + "integrity": "sha512-f9e+Oxe5z7fNQarTBZXilMyswlkbYWQHONVfq8MqmiEnW3h9XsxxmVJLG8uVQSQPUsbW+x1UUT/tnU6mkMWeLg==", + "peerDependencies": { + "expo": "*" + } + }, "node_modules/expo-modules-autolinking": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.5.1.tgz", @@ -14790,6 +14800,11 @@ "react": "18.2.0" } }, + "node_modules/react-native-dropdown-select-list": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/react-native-dropdown-select-list/-/react-native-dropdown-select-list-2.0.5.tgz", + "integrity": "sha512-TepbcagQVUMB6nLuIlVU2ghRpQHAECOeZWe8K04ymW6NqbKbxuczZSDFfdCiABiiQ2dFD+8Dz65y4K7/uUEqGg==" + }, "node_modules/react-native-splash-screen": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/react-native-splash-screen/-/react-native-splash-screen-3.3.0.tgz", diff --git a/LeftOvers/package.json b/LeftOvers/package.json index 54de2b4..0357d85 100644 --- a/LeftOvers/package.json +++ b/LeftOvers/package.json @@ -12,11 +12,13 @@ "@expo/webpack-config": "^19.0.0", "@types/react": "~18.2.14", "expo": "~49.0.15", + "expo-linear-gradient": "~12.3.0", "expo-splash-screen": "~0.20.5", "expo-status-bar": "~1.6.0", "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.72.6", + "react-native-dropdown-select-list": "^2.0.5", "react-native-splash-screen": "^3.3.0", "react-native-web": "~0.19.6", "typescript": "^5.1.3"