From ac7967aae5dc435959f6645a0164cf4767600d13 Mon Sep 17 00:00:00 2001 From: duogenesis <136373989+duogenesis@users.noreply.github.com> Date: Mon, 23 Dec 2024 08:54:31 +1100 Subject: [PATCH] Upgrade React Navigation + Brutalist UI refresh --- App.tsx | 2 +- components/audio-bio.tsx | 2 +- components/avatar.tsx | 64 ++---- components/basic.tsx | 2 +- components/button-group.tsx | 4 +- components/button/centered-text.tsx | 2 +- components/button/option.tsx | 3 +- components/chart.tsx | 24 ++- components/check-chip.tsx | 6 +- components/club-selector.tsx | 6 +- components/club.tsx | 5 +- components/conversation-screen.tsx | 117 +++++------ components/default-long-text-input.tsx | 7 +- components/default-text-input.tsx | 3 +- components/in-depth-screen.tsx | 2 +- components/otp-input.tsx | 1 + components/profile-card.tsx | 1 - components/profile-tab.tsx | 4 + components/prospect-profile-screen.tsx | 22 +- components/quiz-card-stack.tsx | 7 - components/quiz-card.tsx | 16 +- components/shadow.tsx | 15 -- components/top-nav-bar.tsx | 11 +- components/welcome-screen.tsx | 1 - package-lock.json | 271 ++++++++++++++++--------- package.json | 6 +- 26 files changed, 302 insertions(+), 302 deletions(-) delete mode 100644 components/shadow.tsx diff --git a/App.tsx b/App.tsx index 2fac9c88..ca4b2fc0 100644 --- a/App.tsx +++ b/App.tsx @@ -78,7 +78,7 @@ const HomeTabs = () => { return ( } > diff --git a/components/audio-bio.tsx b/components/audio-bio.tsx index 30b8f784..d4040610 100644 --- a/components/audio-bio.tsx +++ b/components/audio-bio.tsx @@ -315,7 +315,7 @@ const AudioBio = ({ width: '100%', borderRadius: 10, borderWidth: 1, - borderColor: '#ccc', + borderColor: '#999', padding: 10, gap: 15, }} diff --git a/components/avatar.tsx b/components/avatar.tsx index 0dec5aa0..74e1cf61 100644 --- a/components/avatar.tsx +++ b/components/avatar.tsx @@ -30,16 +30,6 @@ const Avatar = ({percentage, ...props}) => { verificationRequired = null, } = props; - const shadowStyle = (shadow && !isSkipped && !verificationRequired) ? { - shadowOffset: { - width: 0, - height: 2, - }, - shadowOpacity: 0.3, - shadowRadius: 6, - elevation: 6, - } : {}; - const Element = navigation ? Pressable : View; const elementStyle = useRef({ height: 90, @@ -70,44 +60,32 @@ const Avatar = ({percentage, ...props}) => { onPress={onPress} style={elementStyle} > - - - {!imageUuid && - - } - - + {!imageUuid && + + } + { { selectedButtonStyle={{ backgroundColor: 'rgb(228, 204, 255)', // = #70f, 0.2 opacity borderRadius: secondary === true ? secondaryBorderRadius : borderRadius, + borderWidth: 1, + borderBottomWidth: 3, + borderColor: '#70f', }} selectedTextStyle={{ color: '#70f', @@ -45,7 +48,6 @@ const ButtonGroup = (props) => { marginBottom: 10, borderWidth: 0, overflow: 'visible', - backgroundColor: 'rgb(245, 245, 245)', borderRadius: secondary === true ? secondaryBorderRadius : borderRadius, height: 48, ...(secondary === true ? secondaryContainerStyle : {}), diff --git a/components/button/centered-text.tsx b/components/button/centered-text.tsx index c350dbd4..ced9c65a 100644 --- a/components/button/centered-text.tsx +++ b/components/button/centered-text.tsx @@ -95,7 +95,7 @@ const ButtonWithCenteredText = (props) => { containerStyle?.height === undefined ) ? undefined : '100%', borderRadius: 999, - borderColor: borderColor === undefined ? '#ccc' : borderColor, + borderColor: borderColor === undefined ? 'black' : borderColor, borderWidth: borderWidth === undefined ? (secondary ? 1 : 0) : borderWidth, backgroundColor: backgroundColor || (secondary ? 'white' : '#70f'), opacity: animatedOpacity, diff --git a/components/button/option.tsx b/components/button/option.tsx index 1799a180..8374d418 100644 --- a/components/button/option.tsx +++ b/components/button/option.tsx @@ -87,8 +87,9 @@ const ButtonForOption = (props) => { style={{ width: '100%', height: '100%', - borderColor: '#aaa', + borderColor: '#999', borderWidth: 1, + borderBottomWidth: 2, borderRadius: 999, paddingLeft: 10, paddingRight: 20, diff --git a/components/chart.tsx b/components/chart.tsx index cc1801e4..2c9d3571 100644 --- a/components/chart.tsx +++ b/components/chart.tsx @@ -1,5 +1,6 @@ import { Animated, + DimensionValue, LayoutAnimation, Pressable, View, @@ -83,7 +84,11 @@ const Chart = ({name1, percentage1, name2, percentage2, ...props}) => { const position_ = position && Math.round(position); const extraHeight_ = extraHeight || 0; - const labelPosition = position_ < 50 ? + const labelPosition: { + left: DimensionValue + } | { + right: DimensionValue + } = position_ < 50 ? {left: `${position_}%`} : {right: `${100 - position_}%`}; @@ -185,14 +190,17 @@ const Chart = ({name1, percentage1, name2, percentage2, ...props}) => { borderRadius: 5, marginTop: 10, marginBottom: 10, - shadowOffset: { - width: 0, - height: 2, - }, - shadowOpacity: 0.2, - shadowRadius: 3, - elevation: 8, overflow: 'visible', + + borderTopWidth: 1, + borderLeftWidth: 1, + borderRightWidth: 1, + borderBottomWidth: 3, + + borderTopColor: '#eee', + borderLeftColor: '#eee', + borderRightColor: '#eee', + borderBottomColor: '#ddd', }} > { {clubItem.name} + > + {clubItem.name} + {clubItem.count_members} {' '} diff --git a/components/club.tsx b/components/club.tsx index b56e108f..6683aff9 100644 --- a/components/club.tsx +++ b/components/club.tsx @@ -16,7 +16,10 @@ const Club = ({ return ( { @@ -172,13 +174,8 @@ const Menu = ({navigation, name, personId, personUuid, closeFn}) => { flexDirection: 'column', backgroundColor: 'white', borderRadius: borderRadius, - shadowOffset: { - width: 0, - height: 3, - }, - shadowOpacity: 0.2, - shadowRadius: 10, - elevation: 8, + borderWidth: 1, + borderColor: '#999', zIndex: 999, overflow: 'visible', maxWidth: 350, @@ -290,15 +287,8 @@ const ConversationScreenNavBar = ({ setShowMenu(x => !x); }, []); - // There's a bug in React Native which causes `overflow: hidden` to be - // ignored when zIndex or elevation are set. - const menuWorkaround = showMenu && Platform.OS === 'android' ? { - elevation: undefined, - zIndex: undefined, - } : {}; - return ( - + navigation.goBack()} iconName="arrow-back" @@ -818,73 +808,57 @@ const TextInputWithButton = ({ style={styles.keyboardAvoidingView} enabled={Platform.OS === 'ios'} > - - - - - + } + {!isLoading && + - {isLoading && - - } - {!isLoading && - - } - - - - + /> + } + + ); }; @@ -897,18 +871,19 @@ const styles = StyleSheet.create({ flexDirection: 'row', maxWidth: 600, width: '100%', + paddingHorizontal: 10, + marginBottom: 10, alignSelf: 'center', + alignItems: 'flex-end', + gap: 10, }, textInput: { - textAlignVertical: 'top', - backgroundColor: '#eeeeee', + backgroundColor: '#eee', borderRadius: 10, padding: 10, fontSize: 16, flex: 1, flexGrow: 1, - margin: 10, - marginRight: 5, } }); diff --git a/components/default-long-text-input.tsx b/components/default-long-text-input.tsx index a65cddb7..eb349709 100644 --- a/components/default-long-text-input.tsx +++ b/components/default-long-text-input.tsx @@ -1,3 +1,4 @@ +import { Platform } from 'react-native'; import { DefaultTextInput } from './default-text-input'; const DefaultLongTextInput = (props) => { @@ -5,16 +6,10 @@ const DefaultLongTextInput = (props) => { return ( { return ( { marginLeft: 20, marginRight: 20, textAlignVertical: 'center', - borderColor: '#ccc', + borderColor: '#999', borderWidth: 1, borderRadius: 10, height: 50, diff --git a/components/in-depth-screen.tsx b/components/in-depth-screen.tsx index 7279eb94..9d4b160b 100644 --- a/components/in-depth-screen.tsx +++ b/components/in-depth-screen.tsx @@ -20,7 +20,7 @@ import { StatusBarSpacer } from './status-bar-spacer'; import { FloatingBackButton } from './prospect-profile-screen'; import { CardState } from './quiz-card'; -const sideMargins: StyleProp = { +const sideMargins = { marginLeft: 10, marginRight: 10, }; diff --git a/components/otp-input.tsx b/components/otp-input.tsx index f99fb8e8..519cd5fc 100644 --- a/components/otp-input.tsx +++ b/components/otp-input.tsx @@ -166,6 +166,7 @@ const OtpInput = (props: Props) => { { state.map((digitState, i) => inputRefs.current[i] = e} diff --git a/components/profile-card.tsx b/components/profile-card.tsx index dd1caf25..ac00e7a3 100644 --- a/components/profile-card.tsx +++ b/components/profile-card.tsx @@ -14,7 +14,6 @@ import { } from 'react'; import { LinearGradient } from 'expo-linear-gradient'; import { DefaultText } from './default-text'; -import { Avatar } from './avatar'; import { IMAGES_URL, } from '../env/env'; diff --git a/components/profile-tab.tsx b/components/profile-tab.tsx index 5ee4a798..bead829f 100644 --- a/components/profile-tab.tsx +++ b/components/profile-tab.tsx @@ -301,6 +301,8 @@ const DisplayNameAndAboutPerson = ({navigation, data}) => { defaultValue={data?.name ?? ''} onChangeText={onChangeNameText} style={{ + backgroundColor: '#eee', + borderWidth: 0, marginLeft: 0, marginRight: 0, }} @@ -325,6 +327,8 @@ const DisplayNameAndAboutPerson = ({navigation, data}) => { onChangeText={onChangeAboutText} numberOfLines={8} style={{ + backgroundColor: '#eee', + borderWidth: 0, height: 200, }} /> diff --git a/components/prospect-profile-screen.tsx b/components/prospect-profile-screen.tsx index 791fd6f2..8dd64441 100644 --- a/components/prospect-profile-screen.tsx +++ b/components/prospect-profile-screen.tsx @@ -22,7 +22,6 @@ import { StatusBarSpacer } from './status-bar-spacer'; import { DefaultText } from './default-text'; import { DonutChart } from './donut-chart'; import { Title } from './title'; -import { Shadow } from './shadow'; import { InDepthScreen } from './in-depth-screen'; import { ButtonWithCenteredText } from './button/centered-text'; import { api } from '../api/api'; @@ -197,13 +196,9 @@ const FloatingBackButton = (props) => { backgroundColor: 'white', alignItems: 'center', justifyContent: 'center', - shadowOffset: { - width: 0, - height: 4, - }, - shadowOpacity: 0.3, - shadowRadius: 8, - elevation: 8, + borderWidth: 1, + borderBottomWidth: 2, + borderColor: 'black', }} onPress={onPress ?? (navigationRef?.current || navigation).goBack} > @@ -265,13 +260,9 @@ const FloatingProfileInteractionButton = ({ backgroundColor: backgroundColor, opacity: opacity, flexDirection: 'row', - shadowOffset: { - width: 0, - height: 4, - }, - shadowOpacity: 0.3, - shadowRadius: 8, - elevation: 6, + borderWidth: 1, + borderBottomWidth: 3, + borderColor: 'black', height: 60, width: 60, }} @@ -817,7 +808,6 @@ const Content = (navigationRef) => ({navigation, route, ...props}) => { userLocation={data?.location} textColor={data?.theme?.title_color} /> - { - return ; -}; - -export { - Shadow, -}; diff --git a/components/top-nav-bar.tsx b/components/top-nav-bar.tsx index d91c816d..cf8fe0a3 100644 --- a/components/top-nav-bar.tsx +++ b/components/top-nav-bar.tsx @@ -6,15 +6,7 @@ import { StatusBarSpacer } from './status-bar-spacer'; import { DefaultText } from './default-text'; import { Logo16 } from './logo'; -const shadow = { - shadowOffset: { - width: 0, - height: 2, - }, - shadowOpacity: 0.1, - shadowRadius: 3, - elevation: 8, -}; +// TODO: Check how this works with the report menu const TopNavBar = (props) => { return ( @@ -24,7 +16,6 @@ const TopNavBar = (props) => { zIndex: 999, width: '100%', overflow: 'visible', - ...(props.shadow === false ? {} : shadow), ...props.containerStyle, }} > diff --git a/components/welcome-screen.tsx b/components/welcome-screen.tsx index 906bc420..534f9302 100644 --- a/components/welcome-screen.tsx +++ b/components/welcome-screen.tsx @@ -575,7 +575,6 @@ const WelcomeScreen_ = ({navigation, route}) => { > submit()} - borderWidth={0} secondary={true} loading={isLoading} extraChildren={ diff --git a/package-lock.json b/package-lock.json index baa41ca8..c2d6d27a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,9 +14,9 @@ "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-native-fontawesome": "^0.3.2", "@react-native-async-storage/async-storage": "1.23.1", - "@react-navigation/bottom-tabs": "^6.5.2", - "@react-navigation/native": "^6.1.1", - "@react-navigation/native-stack": "^6.9.7", + "@react-navigation/bottom-tabs": "^7.2.0", + "@react-navigation/native": "^7.0.14", + "@react-navigation/native-stack": "^7.2.0", "@react-spring/native": "^9.5.5", "@rneui/themed": "^4.0.0-rc.7", "@xmldom/xmldom": "^0.8.10", @@ -4657,20 +4657,19 @@ } }, "node_modules/@react-navigation/bottom-tabs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.2.tgz", - "integrity": "sha512-iN3B1cgXdo64lqXdsTsCjN7n+5ILYKRexAu0VtW6EO8E6Z/0obK5JcCEropSiimRqVRs0kyuYj3F94Oth+hMrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.2.0.tgz", + "integrity": "sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA==", "dependencies": { - "@react-navigation/elements": "^1.3.12", - "color": "^4.2.3", - "warn-once": "^0.1.0" + "@react-navigation/elements": "^2.2.5", + "color": "^4.2.3" }, "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", + "@react-navigation/native": "^7.0.14", + "react": ">= 18.2.0", "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0", - "react-native-screens": ">= 3.0.0" + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" } }, "node_modules/@react-navigation/bottom-tabs/node_modules/color": { @@ -4702,19 +4701,20 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@react-navigation/core": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.5.tgz", - "integrity": "sha512-wcde35HeOM5r2P25EwLQZyJ1yhXDGKuWpnKfsSI1xrgYIvWdYi3j/yGnwgNGDelCmtUt1Fyk2pmOv8sEku9KkA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.3.1.tgz", + "integrity": "sha512-S3KCGvNsoqVk8ErAtQI2EAhg9185lahF5OY01ofrrD4Ij/uk3QEHHjoGQhR5l5DXSCSKr1JbMQA7MEKMsBiWZA==", "dependencies": { - "@react-navigation/routers": "^6.1.6", + "@react-navigation/routers": "^7.1.2", "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.23", + "nanoid": "3.3.8", "query-string": "^7.1.3", - "react-is": "^16.13.0", - "use-latest-callback": "^0.1.5" + "react-is": "^18.2.0", + "use-latest-callback": "^0.2.1", + "use-sync-external-store": "^1.2.2" }, "peerDependencies": { - "react": "*" + "react": ">= 18.2.0" } }, "node_modules/@react-navigation/core/node_modules/escape-string-regexp": { @@ -4728,51 +4728,84 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@react-navigation/core/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, "node_modules/@react-navigation/elements": { - "version": "1.3.31", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz", - "integrity": "sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.2.5.tgz", + "integrity": "sha512-sDhE+W14P7MNWLMxXg1MEVXwkLUpMZJGflE6nQNzLmolJQIHgcia0Mrm8uRa3bQovhxYu1UzEojLZ+caoZt7Fg==", + "dependencies": { + "color": "^4.2.3" + }, "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", + "@react-native-masked-view/masked-view": ">= 0.2.0", + "@react-navigation/native": "^7.0.14", + "react": ">= 18.2.0", "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0" + "react-native-safe-area-context": ">= 4.0.0" + }, + "peerDependenciesMeta": { + "@react-native-masked-view/masked-view": { + "optional": true + } + } + }, + "node_modules/@react-navigation/elements/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/elements/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/elements/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/native": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.1.tgz", - "integrity": "sha512-iIozx9c66EjSFyzKrZPixnk6vBuivYXp0jmbKCJXNIa7MY+8OLx9CXj/+1py/l/OGlXDhI6jiUWWetOfOtMaBQ==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.0.14.tgz", + "integrity": "sha512-Gi6lLw4VOGSWAhmUdJOMauOKGK51/YA1CprjXm91sNfgERWvznqEMw8QmUQx9SEqYfi0LfZhbzpMst09SJ00lw==", "dependencies": { - "@react-navigation/core": "^6.4.5", + "@react-navigation/core": "^7.3.1", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", - "nanoid": "^3.1.23" + "nanoid": "3.3.8", + "use-latest-callback": "^0.2.1" }, "peerDependencies": { - "react": "*", + "react": ">= 18.2.0", "react-native": "*" } }, "node_modules/@react-navigation/native-stack": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.7.tgz", - "integrity": "sha512-YsBv4LldFErwQbqLCI/aWWDTpMf9SFS4IW3Qcefm+TZli9Ee7XpZMmFdotiZTz4KoYHbqhO1fuExjl2O7ZHrAQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.2.0.tgz", + "integrity": "sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA==", "dependencies": { - "@react-navigation/elements": "^1.3.12", - "warn-once": "^0.1.0" + "@react-navigation/elements": "^2.2.5", + "warn-once": "^0.1.1" }, "peerDependencies": { - "@react-navigation/native": "^6.0.0", - "react": "*", + "@react-navigation/native": "^7.0.14", + "react": ">= 18.2.0", "react-native": "*", - "react-native-safe-area-context": ">= 3.0.0", - "react-native-screens": ">= 3.0.0" + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" } }, "node_modules/@react-navigation/native/node_modules/escape-string-regexp": { @@ -4787,11 +4820,11 @@ } }, "node_modules/@react-navigation/routers": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.6.tgz", - "integrity": "sha512-Z5DeCW3pUvMafbU9Cjy1qJYC2Bvl8iy3+PfsB0DsAwQ6zZ3WAXW5FTMX4Gb9H+Jg6qHWGbMFFwlYpS3UJ3tlVQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.1.2.tgz", + "integrity": "sha512-emdEjpVDK8zbiu2GChC8oYIAub9i/OpNuQJekVsbyFCBz4/TzaBzms38Q53YaNhdIFNmiYLfHv/Y1Ub7KYfm3w==", "dependencies": { - "nanoid": "^3.1.23" + "nanoid": "3.3.8" } }, "node_modules/@react-spring/animated": { @@ -11160,9 +11193,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -14515,9 +14548,20 @@ } }, "node_modules/use-latest-callback": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz", - "integrity": "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ==" + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.3.tgz", + "integrity": "sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ==", + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } }, "node_modules/util": { "version": "0.12.5", @@ -18276,13 +18320,12 @@ } }, "@react-navigation/bottom-tabs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.2.tgz", - "integrity": "sha512-iN3B1cgXdo64lqXdsTsCjN7n+5ILYKRexAu0VtW6EO8E6Z/0obK5JcCEropSiimRqVRs0kyuYj3F94Oth+hMrw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.2.0.tgz", + "integrity": "sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA==", "requires": { - "@react-navigation/elements": "^1.3.12", - "color": "^4.2.3", - "warn-once": "^0.1.0" + "@react-navigation/elements": "^2.2.5", + "color": "^4.2.3" }, "dependencies": { "color": { @@ -18310,45 +18353,68 @@ } }, "@react-navigation/core": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.5.tgz", - "integrity": "sha512-wcde35HeOM5r2P25EwLQZyJ1yhXDGKuWpnKfsSI1xrgYIvWdYi3j/yGnwgNGDelCmtUt1Fyk2pmOv8sEku9KkA==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.3.1.tgz", + "integrity": "sha512-S3KCGvNsoqVk8ErAtQI2EAhg9185lahF5OY01ofrrD4Ij/uk3QEHHjoGQhR5l5DXSCSKr1JbMQA7MEKMsBiWZA==", "requires": { - "@react-navigation/routers": "^6.1.6", + "@react-navigation/routers": "^7.1.2", "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.23", + "nanoid": "3.3.8", "query-string": "^7.1.3", - "react-is": "^16.13.0", - "use-latest-callback": "^0.1.5" + "react-is": "^18.2.0", + "use-latest-callback": "^0.2.1", + "use-sync-external-store": "^1.2.2" }, "dependencies": { "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" } } }, "@react-navigation/elements": { - "version": "1.3.31", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz", - "integrity": "sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==", - "requires": {} + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.2.5.tgz", + "integrity": "sha512-sDhE+W14P7MNWLMxXg1MEVXwkLUpMZJGflE6nQNzLmolJQIHgcia0Mrm8uRa3bQovhxYu1UzEojLZ+caoZt7Fg==", + "requires": { + "color": "^4.2.3" + }, + "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/native": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.1.tgz", - "integrity": "sha512-iIozx9c66EjSFyzKrZPixnk6vBuivYXp0jmbKCJXNIa7MY+8OLx9CXj/+1py/l/OGlXDhI6jiUWWetOfOtMaBQ==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.0.14.tgz", + "integrity": "sha512-Gi6lLw4VOGSWAhmUdJOMauOKGK51/YA1CprjXm91sNfgERWvznqEMw8QmUQx9SEqYfi0LfZhbzpMst09SJ00lw==", "requires": { - "@react-navigation/core": "^6.4.5", + "@react-navigation/core": "^7.3.1", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", - "nanoid": "^3.1.23" + "nanoid": "3.3.8", + "use-latest-callback": "^0.2.1" }, "dependencies": { "escape-string-regexp": { @@ -18359,20 +18425,20 @@ } }, "@react-navigation/native-stack": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.7.tgz", - "integrity": "sha512-YsBv4LldFErwQbqLCI/aWWDTpMf9SFS4IW3Qcefm+TZli9Ee7XpZMmFdotiZTz4KoYHbqhO1fuExjl2O7ZHrAQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.2.0.tgz", + "integrity": "sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA==", "requires": { - "@react-navigation/elements": "^1.3.12", - "warn-once": "^0.1.0" + "@react-navigation/elements": "^2.2.5", + "warn-once": "^0.1.1" } }, "@react-navigation/routers": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.6.tgz", - "integrity": "sha512-Z5DeCW3pUvMafbU9Cjy1qJYC2Bvl8iy3+PfsB0DsAwQ6zZ3WAXW5FTMX4Gb9H+Jg6qHWGbMFFwlYpS3UJ3tlVQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.1.2.tgz", + "integrity": "sha512-emdEjpVDK8zbiu2GChC8oYIAub9i/OpNuQJekVsbyFCBz4/TzaBzms38Q53YaNhdIFNmiYLfHv/Y1Ub7KYfm3w==", "requires": { - "nanoid": "^3.1.23" + "nanoid": "3.3.8" } }, "@react-spring/animated": { @@ -23083,9 +23149,9 @@ } }, "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==" }, "negotiator": { "version": "0.6.3", @@ -25513,9 +25579,16 @@ } }, "use-latest-callback": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz", - "integrity": "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ==" + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.3.tgz", + "integrity": "sha512-7vI3fBuyRcP91pazVboc4qu+6ZqM8izPWX9k7cRnT8hbD5svslcknsh3S9BUhaK11OmgTV4oWZZVSeQAiV53SQ==", + "requires": {} + }, + "use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "requires": {} }, "util": { "version": "0.12.5", diff --git a/package.json b/package.json index bc07d1c7..28ba1580 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,9 @@ "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-native-fontawesome": "^0.3.2", "@react-native-async-storage/async-storage": "1.23.1", - "@react-navigation/bottom-tabs": "^6.5.2", - "@react-navigation/native": "^6.1.1", - "@react-navigation/native-stack": "^6.9.7", + "@react-navigation/bottom-tabs": "^7.2.0", + "@react-navigation/native": "^7.0.14", + "@react-navigation/native-stack": "^7.2.0", "@react-spring/native": "^9.5.5", "@rneui/themed": "^4.0.0-rc.7", "@xmldom/xmldom": "^0.8.10",