diff --git a/front/components/GtkUI/ElementList.tsx b/front/components/GtkUI/ElementList.tsx new file mode 100644 index 0000000..4a66ab0 --- /dev/null +++ b/front/components/GtkUI/ElementList.tsx @@ -0,0 +1,63 @@ +import React from "react"; +import { StyleProp, ViewStyle } from "react-native"; + +import { Box, Center, Column, Row, Text, Divider } from "native-base"; + +type ElementProps = { + title: string; + icon?: React.ReactNode; + disabled?: boolean; + onPress?: () => void; + // node is only used if type is "custom" + node?: React.ReactNode; +}; + +const Element = ({ title, icon, disabled, onPress, node }: ElementProps) => { + return ( + + + {icon} + {title} + + {node} + + ); +}; + +type ElementListProps = { + elements: ElementProps[]; + style?: StyleProp; +}; + +const ElementList = ({ elements, style }: ElementListProps) => { + return ( + + {(() => { + const elementsWithDividers = []; + for (let i = 0; i < elements.length; i++) { + elementsWithDividers.push(); + if (i < elements.length - 1) { + elementsWithDividers.push(); + } + } + return elementsWithDividers; + })()} + + ); +}; + +export default ElementList; diff --git a/front/views/settings/SettingsProfileView.tsx b/front/views/settings/SettingsProfileView.tsx index b362882..22db381 100644 --- a/front/views/settings/SettingsProfileView.tsx +++ b/front/views/settings/SettingsProfileView.tsx @@ -20,6 +20,7 @@ import { FontAwesome5 } from "@expo/vector-icons"; import User from "../../models/User"; import TextButton from "../../components/TextButton"; import LoadingComponent from "../../components/Loading"; +import ElementList from "../../components/GtkUI/ElementList"; const getInitials = (name: string) => { const names = name.split(" "); @@ -62,7 +63,10 @@ const ProfileSettings = ({ navigation }: { navigation: any }) => { {getInitials(user.name)} - } /> + } + /> @@ -91,6 +95,31 @@ const ProfileSettings = ({ navigation }: { navigation: any }) => { Party played: {user.data.partyPlayed} XP: {user.data.xp} + + {user.name}, + }, + { + title: "ID", + node: {user.id}, + }, + { + title: "Email", + node: {user.email}, + }, + { + title: "Party played", + node: {user.data.partyPlayed}, + }, + { + title: "XP", + node: {user.data.xp}, + }, + ]} + />