diff --git a/App.tsx b/App.tsx index 88e7d25..9ae4a3d 100644 --- a/App.tsx +++ b/App.tsx @@ -5,7 +5,10 @@ import HomeScreen from './screens/HomeScreen'; import MessScreen from './screens/MessScreen'; import MessPage from './screens/MessPage'; import { RootStackParamList } from './types'; - +import HomePage from './screens/HomePage'; +import LoginPage from './screens/LoginPage'; +import Splash from './screens/Splash' +import NewPost from './screens/NewPost'; const Stack = createNativeStackNavigator(); @@ -14,10 +17,13 @@ const Stack = createNativeStackNavigator(); export default function App() { return ( - - + + + + - + + ); diff --git a/assets/bg.png b/assets/bg.png new file mode 100644 index 0000000..68a956d Binary files /dev/null and b/assets/bg.png differ diff --git a/assets/non-veg.jpg b/assets/non-veg.jpg new file mode 100644 index 0000000..3670e7a Binary files /dev/null and b/assets/non-veg.jpg differ diff --git a/assets/veg.jpg b/assets/veg.jpg new file mode 100644 index 0000000..8905f72 Binary files /dev/null and b/assets/veg.jpg differ diff --git a/components/AddButton.tsx b/components/AddButton.tsx new file mode 100644 index 0000000..d012f35 --- /dev/null +++ b/components/AddButton.tsx @@ -0,0 +1,47 @@ +import React, { useState } from 'react' +import {Text, Animated, StyleProp, StyleSheet, TouchableOpacity, View, ViewStyle } from 'react-native' +import { FontAwesome } from '@expo/vector-icons'; + +interface Props{ + options?: string[], + style?: StyleProp, + onPress: ()=>void, +} + +function AddButton({options,style,onPress}:Props) { + + return ( + + {onPress()}} onPressIn={()=>{}}> + + + + + + + ) + } + +const styles= StyleSheet.create({ + container:{ + backgroundColor:"#eeeeee", + height:50, + width:50, + elevation:5, + borderRadius:50, + position:'absolute', + bottom:30, + right:30 + }, + body:{ + justifyContent:'center', + alignItems:'center', + height:50, + width:50, + }, + text:{ + fontSize:20 + } + +}) + +export default AddButton \ No newline at end of file diff --git a/components/InfoBlock.tsx b/components/InfoBlock.tsx index d192610..8fcdfb4 100644 --- a/components/InfoBlock.tsx +++ b/components/InfoBlock.tsx @@ -3,79 +3,58 @@ import { Image, ImageSourcePropType, StyleSheet, View,Text, TouchableOpacity, Di import { FontAwesome } from '@expo/vector-icons'; interface Props{ - src: ImageSourcePropType, + src: string, name: string, - rating?: number, - mess?: string, + rating: number, } -function InfoBlock({src,name, rating,mess}:Props) { +function InfoBlock({src,name, rating}:Props) { const [color, setColor] = useState('grey') - if (rating!=undefined){ return ( - - - - - - - {name} - - - setColor('green')}> - + + + {name} + + setColor('green')}> + {rating}% - - setColor('red')}> - + + setColor('red')}> + {100 - rating}% - - - - - - ) - } - else{ - return ( - - - - - - {name} - - Mess: {mess} + - ) } -} const styles= StyleSheet.create({ container:{ - margin:10, + width:100, + margin:5, + marginRight:20, borderRadius:15, - flexDirection:'row', - elevation:5, - padding:20, + alignItems:'center', + flexDirection:'column', backgroundColor:'#EFEFEF', - width: Dimensions.get('screen').width-50, - maxHeight:120, }, image:{ - height:80, - width:80, + height:100, + width:100, + borderColor:'#000', + borderWidth:1, + borderRadius:10, }, name:{ padding:10, fontSize:15, + textAlign:'center' }, - like_button:{ - height:25, - width:25, - }, + rating:{ + width:100, + flexDirection:'row', + justifyContent:'space-around' + } }) diff --git a/components/MemberBlock.tsx b/components/MemberBlock.tsx new file mode 100644 index 0000000..7a834c8 --- /dev/null +++ b/components/MemberBlock.tsx @@ -0,0 +1,58 @@ +import React from 'react' +import {View, Image, Text, StyleSheet, Dimensions} from 'react-native' + +interface Props{ + name: string + src: string + mess: string +} + +export default function MemberBlock({name,src,mess}:Props) { + return ( + + + + + + {name} + + + Currently in: + + {mess} + + + + + + ) +} + + +const styles = StyleSheet.create({ + container:{ + borderRadius:15, + flexDirection:'row', + elevation:5, + padding:10, + backgroundColor:'#EFEFEF', + width: Dimensions.get('screen').width-50, + maxHeight:150, + }, + image:{ + height:100, + width:100, + borderColor:"#000", + borderWidth:1, + borderRadius:20, + }, + name:{ + fontSize:15 + }, + info:{ + flexDirection:'column', + alignItems:'center', + justifyContent:'space-around', + width:Dimensions.get('window').width-160, + } +}) \ No newline at end of file diff --git a/components/MessButtons.tsx b/components/MessButtons.tsx index 8608c53..be44527 100644 --- a/components/MessButtons.tsx +++ b/components/MessButtons.tsx @@ -1,23 +1,55 @@ import React from 'react' -import { View, Text, StyleSheet, TouchableOpacity } from 'react-native' - +import {ImageBackground, View, Text, StyleSheet, TouchableOpacity, StyleProp, ViewStyle, ImageBackgroundProps, ImageSourcePropType, TextStyle, Image } from 'react-native' +import { LinearGradient } from 'expo-linear-gradient' interface Props{ name:string, - padding?:string | number, + padding?:string | number , height?: number, + gradient?: string[], width?: number, + style?: StyleProp, + src?:ImageSourcePropType, + text_style?: StyleProp, onPress: ()=> void, } -function MessButtons({name,padding,height,width,onPress}:Props) { - return ( +function MessButtons({text_style,name,gradient,padding,height,width,style,src,onPress}:Props) { + if (gradient==undefined){ + gradient=['#EFEFEF',"#EFEFEF"] + } + if(src!=undefined){ + return ( {onPress()}} onPressIn={()=>{}}> - - {name} + + + + {name} - ) + ) + }else{ + return ( + + {onPress()}} onPressIn={()=>{}}> + + + {name} + + + + ) + } } const styles = StyleSheet.create({ @@ -28,6 +60,18 @@ const styles = StyleSheet.create({ elevation:5, justifyContent:'center', alignItems: 'center', + }, + img:{ + position:'absolute', + borderRadius:15, + overflow:'hidden', + opacity:0.5, + }, + background:{ + position:'absolute', + borderRadius:15, + justifyContent:'center', + alignItems: 'center', } }) diff --git a/components/PointerBlock.tsx b/components/PointerBlock.tsx index fd40d04..bde2f91 100644 --- a/components/PointerBlock.tsx +++ b/components/PointerBlock.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import { Dimensions, Image, ImageSourcePropType, StyleSheet, Text, TouchableOpacity, View } from 'react-native' import { FontAwesome } from '@expo/vector-icons'; interface Props{ - src?:ImageSourcePropType, + src?:string, message: string, rating: number, } @@ -12,15 +12,15 @@ export default function PointerBlock({src,message,rating}:Props) { if (src!=undefined) return ( - {} + {} {message} setColor('green')}> - + {rating}% setColor('red')}> - + {100 - rating}% @@ -33,11 +33,11 @@ export default function PointerBlock({src,message,rating}:Props) { {message} setColor('green')}> - + {rating}% setColor('red')}> - + {100 - rating}% diff --git a/components/ToggleMess.tsx b/components/ToggleMess.tsx new file mode 100644 index 0000000..5519ee6 --- /dev/null +++ b/components/ToggleMess.tsx @@ -0,0 +1,61 @@ +import React, { useRef, useState } from 'react' +import { Animated, Dimensions, StyleSheet, Text, TouchableOpacity, View } from 'react-native' + +interface Props{ + values: string[], + init_pos: number +} + + +const ScreenWidth = Dimensions.get('window').width +function ToggleMess({values,init_pos}:Props) { + const [mess , setMess] = useState((values[init_pos])) + const pos= useRef(new Animated.Value(styles.container.width/values.length)).current; + const trasistionButton = (x:number)=>{ + Animated.timing(pos,{ + toValue: x, + useNativeDriver: true, + duration:200 + }).start() + } + return ( + + { + values.map((e)=>{ + return ({setMess(e), trasistionButton(values.indexOf(e)/values.length*styles.container.width)}} key={e}> + {e} + ) + }) + + } + + + {mess} + + + ) +} + +const styles = StyleSheet.create({ + container:{ + backgroundColor:"#EFEFEF", + borderRadius:15, + margin:10, + flexDirection:'row', + width: ScreenWidth*0.8, + }, + TouchableOpacity:{ + padding:10, + alignItems:'center' + }, + anim_view:{ + backgroundColor:'white', + position:'absolute', + borderRadius:15, + padding:9, + elevation:3, + alignItems:'center' + }, +}) + +export default ToggleMess diff --git a/package-lock.json b/package-lock.json index c97bd6b..2d6503c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,14 +8,18 @@ "name": "messy", "version": "1.0.0", "dependencies": { + "@expo/vector-icons": "^13.0.0", + "@react-navigation/bottom-tabs": "^6.4.0", "@react-navigation/native": "^6.0.13", "@react-navigation/native-stack": "^6.9.1", - "@expo/vector-icons": "^13.0.0", "expo": "~46.0.16", + "expo-auth-session": "^3.7.1", + "expo-random": "^12.3.0", "expo-status-bar": "~1.4.0", "react": "18.0.0", "react-dom": "18.0.0", "react-native": "0.69.6", + "react-native-linear-gradient": "^2.6.2", "react-native-paper": "^4.12.5", "react-native-safe-area-context": "4.3.1", "react-native-screens": "~3.15.0", @@ -4331,6 +4335,51 @@ "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz", "integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==" }, + "node_modules/@react-navigation/bottom-tabs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.4.0.tgz", + "integrity": "sha512-90CapiXjiWudbCiki9e6fOr/CECQRguIxv5OD7IBfbAMGX5GGiJpX8aqiHAz2DxpAz31v4JZcUr945+lFhXBfA==", + "dependencies": { + "@react-navigation/elements": "^1.3.6", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/bottom-tabs/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/@react-navigation/bottom-tabs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@react-navigation/bottom-tabs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/@react-navigation/core": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.0.tgz", @@ -4491,6 +4540,11 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", "dev": true }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, "node_modules/@types/react": { "version": "18.0.21", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz", @@ -4555,9 +4609,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz", - "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==", + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.8.tgz", + "integrity": "sha512-PrJx38EfpitFhwmILRl37jAdBlsww6AZ6rRVK4QS7T7RHLhX7mSs647sTmgr9GIxe3qjXdesmomEgbgaokrVFg==", "engines": { "node": ">=10.0.0" } @@ -5252,6 +5306,18 @@ "node": ">=0.10.0" } }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -5624,6 +5690,17 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, + "node_modules/compare-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-urls/-/compare-urls-2.0.0.tgz", + "integrity": "sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA==", + "dependencies": { + "normalize-url": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", @@ -6370,6 +6447,38 @@ "url-parse": "^1.5.9" } }, + "node_modules/expo-auth-session": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/expo-auth-session/-/expo-auth-session-3.7.1.tgz", + "integrity": "sha512-sUOdXBclpYSZEvOkaSbOpLhhtGUQ485ltPfq0sQi+24wh33rKLH2yBocL5QeU/yq/8bafHEWQvkKaUIA2Qq+dA==", + "dependencies": { + "expo-constants": "~13.2.0", + "expo-crypto": "~11.0.0", + "expo-linking": "~3.2.0", + "expo-web-browser": "~11.0.0", + "invariant": "^2.2.4", + "qs": "6.9.1" + }, + "peerDependencies": { + "expo-random": "*" + }, + "peerDependenciesMeta": { + "expo-random": { + "optional": true + } + } + }, + "node_modules/expo-auth-session/node_modules/qs": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", + "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/expo-constants": { "version": "13.2.4", "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.2.4.tgz", @@ -6382,6 +6491,14 @@ "expo": "*" } }, + "node_modules/expo-crypto": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-11.0.0.tgz", + "integrity": "sha512-EH1Ikcy/HxfLJpo+zVRic4Igl6AovZEksAheKfeM2u+2TfL3FEBiQo+cGkuIa8NQ9ui3xYqQcyMk+IIZ6AO0Xg==", + "peerDependencies": { + "expo": "*" + } + }, "node_modules/expo-error-recovery": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.2.0.tgz", @@ -6422,6 +6539,32 @@ "expo": "*" } }, + "node_modules/expo-linking": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-3.2.2.tgz", + "integrity": "sha512-2OY7WAyZXuc8zdTGm2rLu5ESJaFL2TYmPHsJuDJcfIJFaw+nS5vIVk5DGPlk+zCNC3uoqT02t7a5PZVp2bvqtQ==", + "dependencies": { + "@types/qs": "^6.5.3", + "expo-constants": "~13.2.0", + "invariant": "^2.2.4", + "qs": "^6.9.1", + "url-parse": "^1.5.9" + } + }, + "node_modules/expo-linking/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/expo-modules-autolinking": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.10.3.tgz", @@ -6543,11 +6686,33 @@ "invariant": "^2.2.4" } }, + "node_modules/expo-random": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.3.0.tgz", + "integrity": "sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ==", + "dependencies": { + "base64-js": "^1.3.0" + }, + "peerDependencies": { + "expo": "*" + } + }, "node_modules/expo-status-bar": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.4.0.tgz", "integrity": "sha512-vh98g8qMIjig/2XTBsoAWS6Vo2dIIwDWjB3/GiuZ9Lazpxc9GO/APfJ4dar7MibzIDUKIrjotrcL6rLdPH13Ew==" }, + "node_modules/expo-web-browser": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-11.0.0.tgz", + "integrity": "sha512-LKakUgsDIFLCYWh+RrjB8ANzgD6TTpi0fe00Gu5GrGuEs0cQmEynltq2OVPYOXiaNdcaaora7VFqC47A9rDE+A==", + "dependencies": { + "compare-urls": "^2.0.0" + }, + "peerDependencies": { + "expo": "*" + } + }, "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -6913,6 +7078,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-port": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", @@ -7056,6 +7234,17 @@ "node": ">=4" } }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -7528,6 +7717,14 @@ "node": ">=8" } }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -9376,6 +9573,40 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dependencies": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/normalize-url/node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url/node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/npm-package-arg": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", @@ -9502,6 +9733,14 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -9958,6 +10197,14 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -10311,6 +10558,15 @@ "react-native": ">=0.42.0" } }, + "node_modules/react-native-linear-gradient": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.6.2.tgz", + "integrity": "sha512-Z8Xxvupsex+9BBFoSYS87bilNPWcRfRsGC0cpJk72Nxb5p2nEkGSBv73xZbEHnW2mUFvP+huYxrVvjZkr/gRjQ==", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native-paper": { "version": "4.12.5", "resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-4.12.5.tgz", @@ -11025,6 +11281,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -11278,6 +11547,17 @@ "node": ">=0.10.0" } }, + "node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -15722,6 +16002,40 @@ "resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz", "integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==" }, + "@react-navigation/bottom-tabs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.4.0.tgz", + "integrity": "sha512-90CapiXjiWudbCiki9e6fOr/CECQRguIxv5OD7IBfbAMGX5GGiJpX8aqiHAz2DxpAz31v4JZcUr945+lFhXBfA==", + "requires": { + "@react-navigation/elements": "^1.3.6", + "color": "^4.2.3", + "warn-once": "^0.1.0" + }, + "dependencies": { + "color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "requires": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, "@react-navigation/core": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.0.tgz", @@ -15855,6 +16169,11 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", "dev": true }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, "@types/react": { "version": "18.0.21", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz", @@ -15913,9 +16232,9 @@ } }, "@xmldom/xmldom": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz", - "integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==" + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.8.tgz", + "integrity": "sha512-PrJx38EfpitFhwmILRl37jAdBlsww6AZ6rRVK4QS7T7RHLhX7mSs647sTmgr9GIxe3qjXdesmomEgbgaokrVFg==" }, "abort-controller": { "version": "3.0.0", @@ -16457,6 +16776,15 @@ "unset-value": "^1.0.0" } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -16737,6 +17065,14 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, + "compare-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-urls/-/compare-urls-2.0.0.tgz", + "integrity": "sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA==", + "requires": { + "normalize-url": "^2.0.1" + } + }, "compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", @@ -17325,6 +17661,26 @@ "url-parse": "^1.5.9" } }, + "expo-auth-session": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/expo-auth-session/-/expo-auth-session-3.7.1.tgz", + "integrity": "sha512-sUOdXBclpYSZEvOkaSbOpLhhtGUQ485ltPfq0sQi+24wh33rKLH2yBocL5QeU/yq/8bafHEWQvkKaUIA2Qq+dA==", + "requires": { + "expo-constants": "~13.2.0", + "expo-crypto": "~11.0.0", + "expo-linking": "~3.2.0", + "expo-web-browser": "~11.0.0", + "invariant": "^2.2.4", + "qs": "6.9.1" + }, + "dependencies": { + "qs": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz", + "integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==" + } + } + }, "expo-constants": { "version": "13.2.4", "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-13.2.4.tgz", @@ -17334,6 +17690,12 @@ "uuid": "^3.3.2" } }, + "expo-crypto": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-11.0.0.tgz", + "integrity": "sha512-EH1Ikcy/HxfLJpo+zVRic4Igl6AovZEksAheKfeM2u+2TfL3FEBiQo+cGkuIa8NQ9ui3xYqQcyMk+IIZ6AO0Xg==", + "requires": {} + }, "expo-error-recovery": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/expo-error-recovery/-/expo-error-recovery-3.2.0.tgz", @@ -17364,6 +17726,28 @@ "integrity": "sha512-kIRtO4Hmrvxh4E45IPWG/NiUZsuRe1AQwBT09pq+kx8nm6tUS4B9TeL6+1NFy+qVBLbGKDqoQD5Ez7XYTFtBeQ==", "requires": {} }, + "expo-linking": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-3.2.2.tgz", + "integrity": "sha512-2OY7WAyZXuc8zdTGm2rLu5ESJaFL2TYmPHsJuDJcfIJFaw+nS5vIVk5DGPlk+zCNC3uoqT02t7a5PZVp2bvqtQ==", + "requires": { + "@types/qs": "^6.5.3", + "expo-constants": "~13.2.0", + "invariant": "^2.2.4", + "qs": "^6.9.1", + "url-parse": "^1.5.9" + }, + "dependencies": { + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, "expo-modules-autolinking": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.10.3.tgz", @@ -17455,11 +17839,27 @@ "invariant": "^2.2.4" } }, + "expo-random": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-12.3.0.tgz", + "integrity": "sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ==", + "requires": { + "base64-js": "^1.3.0" + } + }, "expo-status-bar": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.4.0.tgz", "integrity": "sha512-vh98g8qMIjig/2XTBsoAWS6Vo2dIIwDWjB3/GiuZ9Lazpxc9GO/APfJ4dar7MibzIDUKIrjotrcL6rLdPH13Ew==" }, + "expo-web-browser": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-11.0.0.tgz", + "integrity": "sha512-LKakUgsDIFLCYWh+RrjB8ANzgD6TTpi0fe00Gu5GrGuEs0cQmEynltq2OVPYOXiaNdcaaora7VFqC47A9rDE+A==", + "requires": { + "compare-urls": "^2.0.0" + } + }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", @@ -17751,6 +18151,16 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, "get-port": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", @@ -17851,6 +18261,11 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -18207,6 +18622,11 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" + }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -19642,6 +20062,33 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "dependencies": { + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" + } + } + }, "npm-package-arg": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", @@ -19744,6 +20191,11 @@ } } }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -20068,6 +20520,11 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + }, "pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -20342,6 +20799,12 @@ "integrity": "sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg==", "requires": {} }, + "react-native-linear-gradient": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.6.2.tgz", + "integrity": "sha512-Z8Xxvupsex+9BBFoSYS87bilNPWcRfRsGC0cpJk72Nxb5p2nEkGSBv73xZbEHnW2mUFvP+huYxrVvjZkr/gRjQ==", + "requires": {} + }, "react-native-paper": { "version": "4.12.5", "resolved": "https://registry.npmjs.org/react-native-paper/-/react-native-paper-4.12.5.tgz", @@ -20894,6 +21357,16 @@ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -21104,6 +21577,14 @@ } } }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, "source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", diff --git a/package.json b/package.json index 4b50a1a..9ab9a57 100644 --- a/package.json +++ b/package.json @@ -10,15 +10,18 @@ }, "dependencies": { "@expo/vector-icons": "^13.0.0", + "@react-navigation/bottom-tabs": "^6.4.0", "@react-navigation/native": "^6.0.13", "@react-navigation/native-stack": "^6.9.1", "expo": "~46.0.16", "expo-auth-session": "^3.7.1", + "expo-linear-gradient": "~11.4.0", "expo-random": "^12.3.0", "expo-status-bar": "~1.4.0", "react": "18.0.0", "react-dom": "18.0.0", "react-native": "0.69.6", + "react-native-linear-gradient": "^2.6.2", "react-native-paper": "^4.12.5", "react-native-safe-area-context": "4.3.1", "react-native-screens": "~3.15.0", diff --git a/screens/GroupPage.tsx b/screens/GroupPage.tsx index c3323f5..1ec9be4 100644 --- a/screens/GroupPage.tsx +++ b/screens/GroupPage.tsx @@ -1,18 +1,31 @@ +import { FontAwesome } from '@expo/vector-icons' import { NativeStackScreenProps } from '@react-navigation/native-stack' import React from 'react' -import { View, Text } from 'react-native' +import { View, Text, StyleSheet} from 'react-native' import { Button } from 'react-native-paper' -import { RootStackParamList } from '../types' - - +import MemberBlock from '../components/MemberBlock' +import { MemberInfo, RootStackParamList } from '../types' +const image1 = 'https://pub-static.fotor.com/assets/projects/pages/d5bdd0513a0740a8a38752dbc32586d0/fotor-03d1a91a0cec4542927f53c87e0599f6.jpg' +const image2 = 'https://i.pinimg.com/474x/97/aa/84/97aa847d061a14894178805f1d551500.jpg' +const image3 = 'https://1fid.com/wp-content/uploads/2022/06/cool-profile-picture-2-1024x1024.jpg' type Props = NativeStackScreenProps -const GroupPage:React.FC = ({route}) => { +const member: MemberInfo[] = [{name:'Chandu', src:image1, mess:'VEG'},{name:'Astitva', src:image2, mess:'NONE'},{name:'Shekhar', src:image3, mess:'NON-VEG'}] + +const GroupPage:React.FC = ({route,navigation}) => { return ( - - Members: - + + {navigation.navigate("Home")}}> + Group Info + + + { + member.map((e)=>{ + return () + }) + } + @@ -20,4 +33,15 @@ const GroupPage:React.FC = ({route}) => { ) } + +const styles = StyleSheet.create({ + heading:{ + justifyContent:'center', + flexDirection:'row', + padding:10, + paddingTop:40, + textAlign:'center', + }, +}) + export default GroupPage \ No newline at end of file diff --git a/screens/HomePage.tsx b/screens/HomePage.tsx index 25801f7..3375821 100644 --- a/screens/HomePage.tsx +++ b/screens/HomePage.tsx @@ -1,42 +1,110 @@ -import React from 'react'; -import {StyleSheet,Text,View, ScrollView} from 'react-native'; +import { NativeStackScreenProps } from '@react-navigation/native-stack'; +import React, { useEffect } from 'react'; +import {ImageBackground,StyleSheet,Text,View, ScrollView,Animated, Easing} from 'react-native'; +import AddButton from '../components/AddButton'; +import MemberBlock from '../components/MemberBlock'; import MessButtons from '../components/MessButtons'; -import InfoBlock from '../components/InfoBlock'; -import PointerBlock from '../components/PointerBlock'; -const icon = require('../assets/Icon.png') -export default function HomePage(){ +import ToggleMess from '../components/ToggleMess'; +import { RootStackParamList } from '../types'; +const veg = require("../assets/veg.jpg") +const nonveg = require("../assets/non-veg.jpg") +const plate = require("../assets/bg.png") + +type Props = NativeStackScreenProps; +const HomePage:React.FC= ({route,navigation})=>{ + const a =['GROUP A', 'GROUP B', 'GROUP C'] + let rotateValueHolder = new Animated.Value(0); + + const startImageRotateFunction = () => { + rotateValueHolder.setValue(0); + Animated.timing(rotateValueHolder, { + toValue: 1, + duration: 7000, + easing: Easing.linear, + useNativeDriver: false, + }).start(() => startImageRotateFunction()); + }; + + const RotateData = rotateValueHolder.interpolate({ + inputRange: [0, 1], + outputRange: ['0deg', '360deg'], + }); + startImageRotateFunction(); + + const bounce = new Animated.Value(500) + + useEffect(() => { + Animated.timing(bounce,{ + toValue:0, + duration:2000, + easing:Easing.elastic(5), + useNativeDriver:true, + }).start() + }, []) + return( - - - alert('veg mess pressed')}/> - alert('non veg mess pressed')}/> - Mess I am currently in: - - alert('veg pressed')}/> - alert('non veg pressed')}/> - - Groups - alert('group a pressed')}/> - alert('group b pressed')}/> - alert('group c pressed')}/> - alert('creat a group pressed')}/> - alert('feedback pressed')}/> - alert('ideas pressed')}/> - - + + + + + + + + Mess I am currently in: + + {navigation.navigate("messPage",{mess:"veg-mess"})}}/> + {navigation.navigate("messPage",{mess:"non-veg-mess"})}}/> + GROUPS + + { + a.map((e)=>{ + return {navigation.navigate('GroupPage',{groupID:`${e}`})}} key={e}/> + }) + } + Feedback + alert('feedback pressed')}/> + alert('ideas pressed')}/> + + + + alert("Creat a group pressed")}/> + + ) } const styles = StyleSheet.create({ - container: { + container:{ + }, + body: { + borderTopLeftRadius:50, + borderTopRightRadius:50, + marginTop:250, justifyContent:'center', alignItems:'center', backgroundColor: '#fff', }, vegmess:{ - backgroundColor:"green", - flex:0.5, - padding: 20, + alignItems:'flex-start', }, -}) \ No newline at end of file + vegmess_text:{ + margin:10, + fontSize:30, + }, + head:{ + justifyContent:'center', + overflow:'visible' + }, + bgimage:{ + height:360, + width:360, + resizeMode:'contain', + position:'absolute', + top:'6%', + left:'2%', + margin:5, + } +}) + +export default HomePage; diff --git a/screens/LoginPage.tsx b/screens/LoginPage.tsx new file mode 100644 index 0000000..27c29a6 --- /dev/null +++ b/screens/LoginPage.tsx @@ -0,0 +1,97 @@ +import React from 'react' +import { StyleSheet, TextInput, TouchableOpacity, View, Text, Dimensions} from 'react-native' +import { NavigationContainer } from '@react-navigation/native'; +import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; +import { RootStackParamList } from '../types'; +import { NativeStackScreenProps } from '@react-navigation/native-stack'; + +type Props = NativeStackScreenProps; + +function Login() { + const [text, onChangeText] = React.useState(''); + const [password, onPassword] = React.useState('') + return ( + + + + + + Submit + + + + ) +} + +function SignUp(){ + const [text, onChangeText] = React.useState('') + const [password, onPassword] = React.useState('') + return( + + + + + + + Submit + + + + ) +} + + +const Tab = createBottomTabNavigator() + +const LoginPage:React.FC=(route,navigation)=>{ + return ( + + + + + ) +} + + +const styles = StyleSheet.create({ + container:{ + flex:1, + alignContent:'center', + alignItems:'center', + }, + textinput:{ + padding:10, + width: Dimensions.get('window').width*0.8, + borderColor:'black', + borderWidth:2, + fontSize:20, + margin:20, + }, + textinput2:{ + padding:10, + width: Dimensions.get('window').width*0.8, + borderColor:'black', + borderWidth:2, + fontSize:20, + margin:20, + }, + submit:{ + alignContent:'center', + alignItems:'center', + }, + login:{ + padding:20 + }, + signup:{ + padding:20 + }, + button:{ + elevation:5, + backgroundColor:'grey', + paddingVertical:10, + paddingHorizontal:20 + } + +}) + +export default LoginPage; \ No newline at end of file diff --git a/screens/MessPage.tsx b/screens/MessPage.tsx index 8479927..6aeee13 100644 --- a/screens/MessPage.tsx +++ b/screens/MessPage.tsx @@ -1,23 +1,66 @@ import React from 'react' -import { StyleSheet, Text, View } from 'react-native' +import { ScrollView, StyleSheet, Text, View } from 'react-native' import InfoBlock from '../components/InfoBlock' import PointerBlock from '../components/PointerBlock' -import { RootStackParamList } from '../types' -import { NativeStackNavigationProp, NativeStackScreenProps } from '@react-navigation/native-stack' - -const image = require('../assets/icon.png'); +import { FoodMenuItem, RootStackParamList } from '../types' +import { NativeStackScreenProps } from '@react-navigation/native-stack' +import { FontAwesome } from '@expo/vector-icons' +import AddButton from '../components/AddButton' +const image = 'https://www.allrecipes.com/thmb/JcYuH_eletuQ22rxRC8aNj3oSd8=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/45396-easy-pancakes-mfs-36-b720f5b89f854d01b9d0e92661fa4c2d.jpg'; +const lunch_img = 'https://images.lifestyleasia.com/wp-content/uploads/sites/7/2022/02/01171428/YFL-Pav-Bhaji-3.jpg' +const dinner_img = 'https://curlytales.com/wp-content/uploads/2017/06/Shiv-Mishthan-Bhandar.jpg' type Props = NativeStackScreenProps; +const breakfast: FoodMenuItem[] = [{name:'Pancakes1',src: image , rating:45},{name:'Pancakes2',src: image , rating:45},{name:'Pancakes3',src: image , rating:45},{name:'Pancakes4',src: image , rating:45},{name:'Pancakes5',src: image , rating:45}] +const lunch: FoodMenuItem[] = [{name:'Pav Bhaji1',src: lunch_img , rating:45},{name:'Pav Bhaji2',src: lunch_img , rating:45},{name:'Pav Bhaji3',src: lunch_img , rating:45},{name:'Pav Bhaji4',src: lunch_img , rating:45},{name:'Pav Bhaji5',src: lunch_img , rating:45}] +const dinner: FoodMenuItem[] = [{name:'Chole Bhature1',src: dinner_img , rating:45},{name:'Chole Bhature2',src: dinner_img , rating:45},{name:'Chole Bhature3',src: dinner_img , rating:45},{name:'Chole Bhature4',src: dinner_img , rating:45},{name:'Chole Bhature5',src: dinner_img , rating:45}] + const MessPage:React.FC= ({route,navigation})=> { return ( - - Number of people in the mess: {} - - - - Pointers on food + + + + + + {navigation.navigate("Home")}}> + + Today's Menu + + Breakfast + + { + breakfast.map((e)=>{ + return () + }) + } + + + + Lunch + + { + lunch.map((e)=>{ + return () + }) + } + + + Dinner + + { + dinner.map((e)=>{ + return () + }) + } + + + Insights + + + + {navigation.navigate("NewPost")}}/> ) } @@ -25,7 +68,31 @@ export default MessPage const styles = StyleSheet.create({ container:{ + paddingTop:40, + justifyContent:'center', alignItems:'center', - justifyContent:'center' + }, + insights:{ + marginTop:30, + fontSize:20, + }, + heading:{ + fontSize:30, + marginBottom:20 + }, + backButton:{ + position:'absolute', + top: 40, + left:30 + }, + menu:{ + flexDirection: 'column', + marginLeft:30, + marginRight:30, + marginTop:10, + + }, + scrollMenu:{ + maxHeight:200, } }) \ No newline at end of file diff --git a/screens/NewPost.tsx b/screens/NewPost.tsx new file mode 100644 index 0000000..f9b9073 --- /dev/null +++ b/screens/NewPost.tsx @@ -0,0 +1,74 @@ +import { FontAwesome } from '@expo/vector-icons' +import { NativeStackScreenProps } from '@react-navigation/native-stack' +import React, { useState } from 'react' +import { View,StyleSheet,Text, TextInput, TouchableOpacity } from 'react-native' +import MessButtons from '../components/MessButtons' +import { RootStackParamList } from '../types' + +type Props = NativeStackScreenProps + +const NewPost:React.FC = ({route,navigation}) => { + const [value, setvalue] = useState("") + return ( + + {navigation.navigate("Home")}}> + + New Insight + + + {setvalue(text)}} value={value} placeholder={"write your review"}/> + + + + {alert('submitted')}}> + SUBMIT + + + + + {value} + + ) +} + +const styles = StyleSheet.create({ + heading:{ + flexDirection:'row', + padding:10, + paddingTop:40, + marginBottom:20, + }, + textinput:{ + textAlign:'justify', + textAlignVertical:'top', + width:300, + margin:10, + }, + container:{ + alignItems:'center', + }, + content:{ + borderColor:"#000", + borderWidth:1, + borderRadius:20, + }, + panel:{ + flexDirection:'row', + height:45, + backgroundColor:"#ddd", + borderBottomLeftRadius:20, + borderBottomRightRadius:20, + justifyContent:'space-between' + }, + submitbutton:{ + backgroundColor:"#727FF8", + margin:7, + alignItems:'center', + justifyContent:'center', + padding:5, + borderRadius:10, + width:70, + } +}) + +export default NewPost \ No newline at end of file diff --git a/types.d.ts b/types.d.ts index 07e68ff..8dee5db 100644 --- a/types.d.ts +++ b/types.d.ts @@ -4,7 +4,23 @@ export interface MessScreenInput { export type RootStackParamList = { + LoginPage; Home; messPage: { mess: string}; GroupPage: {groupID: string}; + Splash; + NewPost; }; + +export interface FoodMenuItem{ + name:string; + src:string; + rating: number; + +} + +export interface MemberInfo{ + name:string, + mess:string, + src:string +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e0fb8b3..43eb76a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1666,6 +1666,15 @@ resolved "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz" integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== +"@react-navigation/bottom-tabs@^6.4.0": + version "6.4.0" + resolved "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.4.0.tgz" + integrity sha512-90CapiXjiWudbCiki9e6fOr/CECQRguIxv5OD7IBfbAMGX5GGiJpX8aqiHAz2DxpAz31v4JZcUr945+lFhXBfA== + dependencies: + "@react-navigation/elements" "^1.3.6" + color "^4.2.3" + warn-once "^0.1.0" + "@react-navigation/core@^6.4.0": version "6.4.0" resolved "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.0.tgz" @@ -1771,7 +1780,7 @@ "@types/qs@^6.5.3": version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== "@types/react-native@~0.69.1": @@ -1831,9 +1840,9 @@ wonka "^4.0.14" "@xmldom/xmldom@~0.7.0": - version "0.7.6" - resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz" - integrity sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ== + version "0.7.8" + resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.8.tgz" + integrity sha512-PrJx38EfpitFhwmILRl37jAdBlsww6AZ6rRVK4QS7T7RHLhX7mSs647sTmgr9GIxe3qjXdesmomEgbgaokrVFg== abort-controller@^3.0.0: version "3.0.0" @@ -2341,7 +2350,7 @@ cache-base@^1.0.1: call-bind@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -2512,7 +2521,7 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.6.0: +color-string@^1.6.0, color-string@^1.9.0: version "1.9.1" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== @@ -2528,6 +2537,14 @@ color@^3.1.2: color-convert "^1.9.3" color-string "^1.6.0" +color@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colorette@^1.0.7: version "1.4.0" resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz" @@ -2572,7 +2589,7 @@ commondir@^1.0.1: compare-urls@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-urls/-/compare-urls-2.0.0.tgz#9b378c4abd43980a8700fffec9afb85de4df9075" + resolved "https://registry.npmjs.org/compare-urls/-/compare-urls-2.0.0.tgz" integrity sha512-eCJcWn2OYFEIqbm70ta7LQowJOOZZqq1a2YbbFCFI1uwSvj+TWMwXVn7vPR1ceFNcAIt5RSTDbwdlX82gYLTkA== dependencies: normalize-url "^2.0.1" @@ -3012,7 +3029,7 @@ expo-asset@~8.6.1: expo-auth-session@^3.7.1: version "3.7.1" - resolved "https://registry.yarnpkg.com/expo-auth-session/-/expo-auth-session-3.7.1.tgz#6c76d12220e2914998e030203afddc24b994a6a0" + resolved "https://registry.npmjs.org/expo-auth-session/-/expo-auth-session-3.7.1.tgz" integrity sha512-sUOdXBclpYSZEvOkaSbOpLhhtGUQ485ltPfq0sQi+24wh33rKLH2yBocL5QeU/yq/8bafHEWQvkKaUIA2Qq+dA== dependencies: expo-constants "~13.2.0" @@ -3032,7 +3049,7 @@ expo-constants@~13.2.0, expo-constants@~13.2.2, expo-constants@~13.2.4: expo-crypto@~11.0.0: version "11.0.0" - resolved "https://registry.yarnpkg.com/expo-crypto/-/expo-crypto-11.0.0.tgz#e434ebede6bae20f5a5cf7d7ea99d41e7b67690e" + resolved "https://registry.npmjs.org/expo-crypto/-/expo-crypto-11.0.0.tgz" integrity sha512-EH1Ikcy/HxfLJpo+zVRic4Igl6AovZEksAheKfeM2u+2TfL3FEBiQo+cGkuIa8NQ9ui3xYqQcyMk+IIZ6AO0Xg== expo-error-recovery@~3.2.0: @@ -3060,9 +3077,14 @@ expo-keep-awake@~10.2.0: resolved "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-10.2.0.tgz" integrity sha512-kIRtO4Hmrvxh4E45IPWG/NiUZsuRe1AQwBT09pq+kx8nm6tUS4B9TeL6+1NFy+qVBLbGKDqoQD5Ez7XYTFtBeQ== +expo-linear-gradient@~11.4.0: + version "11.4.0" + resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-11.4.0.tgz#20ecad4d11e66e35b31600e5389ec9c4067f7312" + integrity sha512-qtIfsLs7NOpfxYrFSJL5uLtNHIkBHQFuQ3f7++XpoJTSm4eQVFxjjkCGWiLIrkpVjKzmgp3DLuIVsadsGX21lA== + expo-linking@~3.2.0: version "3.2.2" - resolved "https://registry.yarnpkg.com/expo-linking/-/expo-linking-3.2.2.tgz#88272cc6d4aab9804d7a1f6c2521cae00b1477a2" + resolved "https://registry.npmjs.org/expo-linking/-/expo-linking-3.2.2.tgz" integrity sha512-2OY7WAyZXuc8zdTGm2rLu5ESJaFL2TYmPHsJuDJcfIJFaw+nS5vIVk5DGPlk+zCNC3uoqT02t7a5PZVp2bvqtQ== dependencies: "@types/qs" "^6.5.3" @@ -3092,7 +3114,7 @@ expo-modules-core@0.11.8: expo-random@^12.3.0: version "12.3.0" - resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-12.3.0.tgz#4a45bcb14e285a4a9161e4a5dc82ff6c3fc2ac0c" + resolved "https://registry.npmjs.org/expo-random/-/expo-random-12.3.0.tgz" integrity sha512-q+AsTfGNT+Q+fb2sRrYtRkI3g5tV4H0kuYXM186aueILGO/vLn/YYFa7xFZj1IZ8LJZg2h96JDPDpsqHfRG2mQ== dependencies: base64-js "^1.3.0" @@ -3104,7 +3126,7 @@ expo-status-bar@~1.4.0: expo-web-browser@~11.0.0: version "11.0.0" - resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-11.0.0.tgz#5116a99a32f8b98fc47a6aff026b4d608ffe18ec" + resolved "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-11.0.0.tgz" integrity sha512-LKakUgsDIFLCYWh+RrjB8ANzgD6TTpi0fe00Gu5GrGuEs0cQmEynltq2OVPYOXiaNdcaaora7VFqC47A9rDE+A== dependencies: compare-urls "^2.0.0" @@ -3421,7 +3443,7 @@ get-caller-file@^2.0.1: get-intrinsic@^1.0.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== dependencies: function-bind "^1.1.1" @@ -3526,7 +3548,7 @@ has-flag@^4.0.0: has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-value@^0.3.1: @@ -3897,7 +3919,7 @@ is-path-inside@^3.0.2: is-plain-obj@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-object@^2.0.3, is-plain-object@^2.0.4: @@ -4900,7 +4922,7 @@ normalize-path@^3.0.0: normalize-url@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz" integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== dependencies: prepend-http "^2.0.0" @@ -4950,7 +4972,7 @@ object-copy@^0.1.0: object-inspect@^1.9.0: version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== object-visit@^1.0.0: @@ -5247,7 +5269,7 @@ postcss-value-parser@^4.2.0: prepend-http@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== pretty-bytes@5.6.0: @@ -5322,19 +5344,19 @@ qs@6.7.0: qs@6.9.1: version "6.9.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9" + resolved "https://registry.npmjs.org/qs/-/qs-6.9.1.tgz" integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA== qs@^6.9.1: version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" query-string@^5.0.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== dependencies: decode-uri-component "^0.2.0" @@ -5437,6 +5459,11 @@ react-native-iphone-x-helper@^1.3.1: resolved "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.3.1.tgz" integrity sha512-HOf0jzRnq2/aFUcdCJ9w9JGzN3gdEg0zFE4FyYlp4jtidqU03D5X7ZegGKfT1EWteR0gPBGp9ye5T5FvSWi9Yg== +react-native-linear-gradient@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.6.2.tgz" + integrity sha512-Z8Xxvupsex+9BBFoSYS87bilNPWcRfRsGC0cpJk72Nxb5p2nEkGSBv73xZbEHnW2mUFvP+huYxrVvjZkr/gRjQ== + react-native-paper@^4.12.5: version "4.12.5" resolved "https://registry.npmjs.org/react-native-paper/-/react-native-paper-4.12.5.tgz" @@ -5923,7 +5950,7 @@ shell-quote@^1.6.1, shell-quote@^1.7.3: side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -6007,7 +6034,7 @@ snapdragon@^0.8.1: sort-keys@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz" integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== dependencies: is-plain-obj "^1.0.0" @@ -6119,7 +6146,7 @@ stream-buffers@2.2.x: strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== strict-uri-encode@^2.0.0: