From c10136083de18f751638c3910174aae6db4c892f Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 12 Feb 2025 18:41:39 +0000 Subject: [PATCH] wip --- package.json | 10 +- src/components/FeedInterstitials.tsx | 4 +- src/components/Link.tsx | 81 ++++++++++--- src/components/dialogs/VerifyEmailDialog.tsx | 4 +- src/components/dms/MessageItem.tsx | 2 +- src/components/moderation/LabelPreference.tsx | 2 +- src/lib/routes/types.ts | 44 ++++--- src/screens/Feeds/NoFollowingFeed.tsx | 2 +- src/screens/Home/NoFeedsPinned.tsx | 2 +- .../Messages/components/MessageListError.tsx | 2 +- src/screens/Moderation/index.tsx | 10 +- src/screens/Settings/AboutSettings.tsx | 8 +- .../Settings/AccessibilitySettings.tsx | 2 +- .../AppIconSettings/SettingsListItem.tsx | 2 +- .../Settings/ContentAndMediaSettings.tsx | 8 +- .../Settings/PrivacyAndSecuritySettings.tsx | 4 +- src/screens/Settings/Settings.tsx | 18 +-- .../components/ChangeHandleDialog.tsx | 2 +- .../Settings/components/ExportCarDialog.tsx | 2 +- src/screens/Takendown.tsx | 2 +- src/view/com/auth/SplashScreen.web.tsx | 4 +- src/view/com/home/HomeHeaderLayout.web.tsx | 2 +- src/view/com/home/HomeHeaderLayoutMobile.tsx | 2 +- src/view/com/posts/FeedShutdownMsg.tsx | 2 + yarn.lock | 112 +++++++++--------- 25 files changed, 198 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index 708ed7ccf4..ab7bc34ea3 100644 --- a/package.json +++ b/package.json @@ -85,10 +85,10 @@ "@react-native-async-storage/async-storage": "1.23.1", "@react-native-menu/menu": "^1.1.7", "@react-native-picker/picker": "2.10.2", - "@react-navigation/bottom-tabs": "^6.5.20", - "@react-navigation/drawer": "^6.6.15", - "@react-navigation/native": "^6.1.17", - "@react-navigation/native-stack": "^6.9.26", + "@react-navigation/bottom-tabs": "^7.2.0", + "@react-navigation/drawer": "^7.1.1", + "@react-navigation/native": "^7.0.14", + "@react-navigation/native-stack": "^7.2.0", "@sentry/react-native": "5.24.3", "@tanstack/query-async-storage-persister": "^5.25.0", "@tanstack/react-query": "^5.8.1", @@ -189,7 +189,7 @@ "react-native-reanimated": "3.17.0-nightly-20241211-17e89ca24", "react-native-root-siblings": "^4.1.1", "react-native-safe-area-context": "4.14.0", - "react-native-screens": "~4.3.0", + "react-native-screens": "~4.6.0", "react-native-svg": "^15.8.0", "react-native-uitextview": "^1.4.0", "react-native-url-polyfill": "^1.3.0", diff --git a/src/components/FeedInterstitials.tsx b/src/components/FeedInterstitials.tsx index 926d27baa3..725fd0a2c3 100644 --- a/src/components/FeedInterstitials.tsx +++ b/src/components/FeedInterstitials.tsx @@ -349,7 +349,7 @@ export function ProfileGrid({ Browse more suggestions @@ -486,7 +486,7 @@ export function SuggestedFeeds() { ]}> Browse more suggestions diff --git a/src/components/Link.tsx b/src/components/Link.tsx index 26cea59686..33208f3415 100644 --- a/src/components/Link.tsx +++ b/src/components/Link.tsx @@ -28,10 +28,29 @@ import {router} from '#/routes' */ export {useButtonContext as useLinkContext} from '#/components/Button' -type BaseLinkProps = Pick< - Parameters>[0], - 'to' -> & { +/** + * Copied from react-nativgation's LinkProps, but with `action` removed. Removing action breaks + * the type, causing screen and params to lose their 'connection' + */ + +export type CustomLinkProps< + ParamList = AllNavigatorParams, + RouteName extends keyof ParamList = keyof ParamList, +> = + | ({ + href?: string + } & { + [Screen in keyof ParamList]: undefined extends ParamList[Screen] + ? {screen: Screen; params?: ParamList[Screen]} + : {screen: Screen; params: ParamList[Screen]} + }[RouteName]) + | { + href: string + screen?: undefined + params?: undefined + } + +type BaseLinkProps = CustomLinkProps & { testID?: string /** @@ -71,8 +90,18 @@ type BaseLinkProps = Pick< shareOnLongPress?: boolean } +function test({screen, params}: CustomLinkProps) { + if (screen === 'Search') { + params.q + // @ts-expect-error hiasuhdas + params.did + } +} + export function useLink({ - to, + screen, + params, + href: hrefProp, displayText, action = 'push', disableMismatchWarning, @@ -85,10 +114,22 @@ export function useLink({ overridePresentation?: boolean }) { const navigation = useNavigationDeduped() - const {href} = useLinkProps({ - to: - typeof to === 'string' ? convertBskyAppUrlIfNeeded(sanitizeUrl(to)) : to, + const safeHrefProp = hrefProp + ? convertBskyAppUrlIfNeeded(sanitizeUrl(hrefProp)) + : undefined + + let {href} = useLinkProps({ + screen: screen!, + params, + href: safeHrefProp, }) + if (!href) { + if (safeHrefProp) { + href = safeHrefProp + } else { + throw new Error('No href provided') + } + } const isExternal = isExternalUrl(href) const {openModal, closeModal} = useModalControls() const openLink = useOpenLink() @@ -97,7 +138,7 @@ export function useLink({ (e: GestureResponderEvent) => { const exitEarlyIfFalse = outerOnPress?.(e) - if (exitEarlyIfFalse === false) return + if (exitEarlyIfFalse === false || e.defaultPrevented) return const requiresWarning = Boolean( !disableMismatchWarning && @@ -214,7 +255,9 @@ export type LinkProps = Omit & */ export function Link({ children, - to, + screen, + params, + href: hrefProp, action = 'push', onPress: outerOnPress, onLongPress: outerOnLongPress, @@ -222,7 +265,9 @@ export function Link({ ...rest }: LinkProps) { const {href, isExternal, onPress, onLongPress} = useLink({ - to, + screen, + params, + href: hrefProp, displayText: typeof children === 'string' ? children : '', action, onPress: outerOnPress, @@ -267,7 +312,9 @@ export type InlineLinkProps = React.PropsWithChildren< export function InlineLinkText({ children, - to, + screen, + params, + href: hrefProp, action = 'push', disableMismatchWarning, style, @@ -284,7 +331,9 @@ export function InlineLinkText({ const t = useTheme() const stringChildren = typeof children === 'string' const {href, isExternal, onPress, onLongPress} = useLink({ - to, + screen, + params, + href: hrefProp, displayText: stringChildren ? children : '', action, disableMismatchWarning, @@ -344,12 +393,12 @@ export function InlineLinkText({ export function WebOnlyInlineLinkText({ children, - to, + href, onPress, ...props }: Omit) { return isWeb ? ( - + {children} ) : ( @@ -366,7 +415,7 @@ export function WebOnlyInlineLinkText({ export function createStaticClick( onPressHandler: Exclude, ): { - to: BaseLinkProps['to'] + to: BaseLinkProps['href'] onPress: Exclude } { return { diff --git a/src/components/dialogs/VerifyEmailDialog.tsx b/src/components/dialogs/VerifyEmailDialog.tsx index ced9171ce3..58d2a05575 100644 --- a/src/components/dialogs/VerifyEmailDialog.tsx +++ b/src/components/dialogs/VerifyEmailDialog.tsx @@ -158,7 +158,7 @@ export function Inner({ ?{' '} { @@ -183,7 +183,7 @@ export function Inner({ to verify it's you. {' '} { diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index 79f0997fd6..d3dc0fe1ca 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -239,7 +239,7 @@ let MessageItemMetadata = ({ ·{' '} {_(msg`Retry`)} diff --git a/src/components/moderation/LabelPreference.tsx b/src/components/moderation/LabelPreference.tsx index e6f18f1d6f..df2ad49ab5 100644 --- a/src/components/moderation/LabelPreference.tsx +++ b/src/components/moderation/LabelPreference.tsx @@ -245,7 +245,7 @@ export function LabelerLabelPreference({ Configured in{' '} moderation settings diff --git a/src/lib/routes/types.ts b/src/lib/routes/types.ts index 8b69a66c47..89636350f2 100644 --- a/src/lib/routes/types.ts +++ b/src/lib/routes/types.ts @@ -105,25 +105,27 @@ export type FlatNavigatorParams = CommonNavigatorParams & { Messages: {pushToConversation?: string; animation?: 'push' | 'pop'} } -export type AllNavigatorParams = CommonNavigatorParams & { - HomeTab: undefined - Home: undefined - SearchTab: undefined - Search: {q?: string} - Feeds: undefined - NotificationsTab: undefined - Notifications: undefined - MyProfileTab: undefined - Hashtag: {tag: string; author?: string} - Topic: {topic: string} - MessagesTab: undefined - Messages: {animation?: 'push' | 'pop'} - Start: {name: string; rkey: string} - StarterPack: {name: string; rkey: string; new?: boolean} - StarterPackShort: {code: string} - StarterPackWizard: undefined - StarterPackEdit: {rkey?: string} -} +export type AllNavigatorParams = Prettify< + CommonNavigatorParams & { + HomeTab: undefined + Home: undefined + SearchTab: undefined + Search: {q?: string} + Feeds: undefined + NotificationsTab: undefined + Notifications: undefined + MyProfileTab: undefined + Hashtag: {tag: string; author?: string} + Topic: {topic: string} + MessagesTab: undefined + Messages: {animation?: 'push' | 'pop'} + Start: {name: string; rkey: string} + StarterPack: {name: string; rkey: string; new?: boolean} + StarterPackShort: {code: string} + StarterPackWizard: undefined + StarterPackEdit: {rkey?: string} + } +> // NOTE // this isn't strictly correct but it should be close enough @@ -141,3 +143,7 @@ export type Route = { match: (path: string) => MatchResult | undefined build: (params: RouteParams) => string } + +type Prettify = { + [K in keyof T]: T[K] +} & {} diff --git a/src/screens/Feeds/NoFollowingFeed.tsx b/src/screens/Feeds/NoFollowingFeed.tsx index fa48cca72c..8e2d906397 100644 --- a/src/screens/Feeds/NoFollowingFeed.tsx +++ b/src/screens/Feeds/NoFollowingFeed.tsx @@ -37,7 +37,7 @@ export function NoFollowingFeed() { Looks like you're missing a following feed.{' '} diff --git a/src/screens/Home/NoFeedsPinned.tsx b/src/screens/Home/NoFeedsPinned.tsx index 74412763f2..50ea075303 100644 --- a/src/screens/Home/NoFeedsPinned.tsx +++ b/src/screens/Home/NoFeedsPinned.tsx @@ -101,7 +101,7 @@ export function NoFeedsPinned({ diff --git a/src/screens/Messages/components/MessageListError.tsx b/src/screens/Messages/components/MessageListError.tsx index 6f50948df9..db0204a804 100644 --- a/src/screens/Messages/components/MessageListError.tsx +++ b/src/screens/Messages/components/MessageListError.tsx @@ -44,7 +44,7 @@ export function MessageListError({item}: {item: ConvoItem & {type: 'error'}}) { {description} ·{' '} {item.retry && ( { e.preventDefault() diff --git a/src/screens/Moderation/index.tsx b/src/screens/Moderation/index.tsx index 55cc67f8c3..6c3a5428f5 100644 --- a/src/screens/Moderation/index.tsx +++ b/src/screens/Moderation/index.tsx @@ -203,7 +203,7 @@ export function ModerationScreenInner({ + screen="ModerationInteractionSettings"> {state => ( + screen="ModerationModlists"> {state => ( + screen="ModerationMutedAccounts"> {state => ( + screen="ModerationBlockedAccounts"> {state => ( { evt.preventDefault() Linking.openURL('https://bsky.app/') diff --git a/src/screens/Settings/AboutSettings.tsx b/src/screens/Settings/AboutSettings.tsx index 92ba2c1beb..a8111076be 100644 --- a/src/screens/Settings/AboutSettings.tsx +++ b/src/screens/Settings/AboutSettings.tsx @@ -33,7 +33,7 @@ export function AboutSettingsScreen({}: Props) { @@ -41,7 +41,7 @@ export function AboutSettingsScreen({}: Props) { @@ -49,7 +49,7 @@ export function AboutSettingsScreen({}: Props) { @@ -57,7 +57,7 @@ export function AboutSettingsScreen({}: Props) { - + System log diff --git a/src/screens/Settings/AccessibilitySettings.tsx b/src/screens/Settings/AccessibilitySettings.tsx index ee26697d2d..aabfbcf255 100644 --- a/src/screens/Settings/AccessibilitySettings.tsx +++ b/src/screens/Settings/AccessibilitySettings.tsx @@ -105,7 +105,7 @@ export function AccessibilitySettingsScreen({}: Props) { Autoplay options have moved to the{' '} Content and Media settings diff --git a/src/screens/Settings/AppIconSettings/SettingsListItem.tsx b/src/screens/Settings/AppIconSettings/SettingsListItem.tsx index add87b1d7a..89994d3266 100644 --- a/src/screens/Settings/AppIconSettings/SettingsListItem.tsx +++ b/src/screens/Settings/AppIconSettings/SettingsListItem.tsx @@ -14,7 +14,7 @@ export function SettingsListItem() { return ( diff --git a/src/screens/Settings/ContentAndMediaSettings.tsx b/src/screens/Settings/ContentAndMediaSettings.tsx index e28c98803c..ecb6cf4a66 100644 --- a/src/screens/Settings/ContentAndMediaSettings.tsx +++ b/src/screens/Settings/ContentAndMediaSettings.tsx @@ -55,7 +55,7 @@ export function ContentAndMediaSettingsScreen({}: Props) { @@ -63,7 +63,7 @@ export function ContentAndMediaSettingsScreen({}: Props) { @@ -71,7 +71,7 @@ export function ContentAndMediaSettingsScreen({}: Props) { @@ -79,7 +79,7 @@ export function ContentAndMediaSettingsScreen({}: Props) { diff --git a/src/screens/Settings/PrivacyAndSecuritySettings.tsx b/src/screens/Settings/PrivacyAndSecuritySettings.tsx index 870ece4bff..97ae9af816 100644 --- a/src/screens/Settings/PrivacyAndSecuritySettings.tsx +++ b/src/screens/Settings/PrivacyAndSecuritySettings.tsx @@ -59,7 +59,7 @@ export function PrivacyAndSecuritySettingsScreen({}: Props) { @@ -98,7 +98,7 @@ export function PrivacyAndSecuritySettingsScreen({}: Props) { label={_( msg`Learn more about what is public on Bluesky.`, )} - to="https://blueskyweb.zendesk.com/hc/en-us/articles/15835264007693-Data-Privacy"> + href="https://blueskyweb.zendesk.com/hc/en-us/articles/15835264007693-Data-Privacy"> Learn more about what is public on Bluesky. diff --git a/src/screens/Settings/Settings.tsx b/src/screens/Settings/Settings.tsx index ea83b00c2c..1b08d0ef9f 100644 --- a/src/screens/Settings/Settings.tsx +++ b/src/screens/Settings/Settings.tsx @@ -150,28 +150,30 @@ export function SettingsScreen({}: Props) { )} - + Account Privacy and security - + Moderation @@ -179,7 +181,7 @@ export function SettingsScreen({}: Props) { @@ -187,7 +189,7 @@ export function SettingsScreen({}: Props) { @@ -195,7 +197,7 @@ export function SettingsScreen({}: Props) { @@ -212,7 +214,7 @@ export function SettingsScreen({}: Props) { - + About diff --git a/src/screens/Settings/components/ChangeHandleDialog.tsx b/src/screens/Settings/components/ChangeHandleDialog.tsx index b69713a10e..47a67c51f6 100644 --- a/src/screens/Settings/components/ChangeHandleDialog.tsx +++ b/src/screens/Settings/components/ChangeHandleDialog.tsx @@ -250,7 +250,7 @@ function ProvidedHandlePage({ lets you self-verify your identity.{' '} Learn more here. diff --git a/src/screens/Settings/components/ExportCarDialog.tsx b/src/screens/Settings/components/ExportCarDialog.tsx index 685707259d..e2e0a2c26c 100644 --- a/src/screens/Settings/components/ExportCarDialog.tsx +++ b/src/screens/Settings/components/ExportCarDialog.tsx @@ -96,7 +96,7 @@ export function ExportCarDialog({ exports in{' '} this blogpost diff --git a/src/screens/Takendown.tsx b/src/screens/Takendown.tsx index 5eb787e802..1de17305d4 100644 --- a/src/screens/Takendown.tsx +++ b/src/screens/Takendown.tsx @@ -215,7 +215,7 @@ export function Takendown() { Your account was found to be in violation of the{' '} Bluesky Social Terms of Service diff --git a/src/view/com/auth/SplashScreen.web.tsx b/src/view/com/auth/SplashScreen.web.tsx index d718ca8324..274f050e18 100644 --- a/src/view/com/auth/SplashScreen.web.tsx +++ b/src/view/com/auth/SplashScreen.web.tsx @@ -164,12 +164,12 @@ function Footer() { ]}> + href="https://bsky.social/about"> Business + href="https://bsky.social/about/blog"> Blog Discover {' '} diff --git a/yarn.lock b/yarn.lock index e2792a4cfa..61aec97fd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5886,65 +5886,69 @@ invariant "^2.2.4" nullthrows "^1.1.1" -"@react-navigation/bottom-tabs@^6.5.20": - version "6.5.20" - resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.20.tgz#5335e75b02c527ef0569bd97d4f9185d65616e49" - integrity sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA== +"@react-navigation/bottom-tabs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-7.2.0.tgz#5b336b823226647a263b4fe743655462796b6aaf" + integrity sha512-1LxjgnbPyFINyf9Qr5d1YE0pYhuJayg5TCIIFQmbcX4PRhX7FKUXV7cX8OzrKXEdZi/UE/VNXugtozPAR9zgvA== dependencies: - "@react-navigation/elements" "^1.3.30" + "@react-navigation/elements" "^2.2.5" color "^4.2.3" - warn-once "^0.1.0" -"@react-navigation/core@^6.4.16": - version "6.4.16" - resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.4.16.tgz#f9369a134805174536b9aa0f0f483b930511caf9" - integrity sha512-UDTJBsHxnzgFETR3ZxhctP+RWr4SkyeZpbhpkQoIGOuwSCkt1SE0qjU48/u6r6w6XlX8OqVudn1Ab0QFXTHxuQ== +"@react-navigation/core@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-7.3.1.tgz#c6d4857fa2dd321d12ca87e200478c38c420f157" + integrity sha512-S3KCGvNsoqVk8ErAtQI2EAhg9185lahF5OY01ofrrD4Ij/uk3QEHHjoGQhR5l5DXSCSKr1JbMQA7MEKMsBiWZA== dependencies: - "@react-navigation/routers" "^6.1.9" + "@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.9" + react-is "^18.2.0" + use-latest-callback "^0.2.1" + use-sync-external-store "^1.2.2" -"@react-navigation/drawer@^6.6.15": - version "6.6.15" - resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-6.6.15.tgz#fcedba68f735103dbc035911f5959ce926081d62" - integrity sha512-GLkFQNxjtmxB/qXSHmu1DfoB89jCzW64tmX68iPndth+9U+0IP27GcCCaMZxQfwj+nI8Kn2zlTlXAZDIIHE+DQ== +"@react-navigation/drawer@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-7.1.1.tgz#4e0235ada1a9dac35e97f1492f7cf4cda98d19b0" + integrity sha512-34UqRS5OLFaNXPs5ocz3Du9c7em0P7fFMPYCZn/MxadDzQ4Mn/74pmJczmiyvyvz8vcWsNRbZ3Qswm0Dv6z60w== dependencies: - "@react-navigation/elements" "^1.3.30" + "@react-navigation/elements" "^2.2.5" color "^4.2.3" - warn-once "^0.1.0" + react-native-drawer-layout "^4.1.1" + use-latest-callback "^0.2.1" -"@react-navigation/elements@^1.3.30": - version "1.3.30" - resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.30.tgz#a81371f599af1070b12014f05d6c09b1a611fd9a" - integrity sha512-plhc8UvCZs0UkV+sI+3bisIyn78wz9O/BiWZXpounu72k/R/Sj5PuZYFJ1fi6psvriUveMCGh4LeZckAZu2qiQ== - -"@react-navigation/native-stack@^6.9.26": - version "6.9.26" - resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.26.tgz#90facf7783c9927f094bc9f01c613af75b6c241e" - integrity sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw== +"@react-navigation/elements@^2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-2.2.5.tgz#0e2ca76e2003e96b417a3d7c2829bf1afd69193f" + integrity sha512-sDhE+W14P7MNWLMxXg1MEVXwkLUpMZJGflE6nQNzLmolJQIHgcia0Mrm8uRa3bQovhxYu1UzEojLZ+caoZt7Fg== dependencies: - "@react-navigation/elements" "^1.3.30" - warn-once "^0.1.0" + color "^4.2.3" -"@react-navigation/native@^6.1.17": - version "6.1.17" - resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.1.17.tgz#439f15a99809d26ea4682d2a3766081cf2ca31cf" - integrity sha512-mer3OvfwWOHoUSMJyLa4vnBH3zpFmCwuzrBPlw7feXklurr/ZDiLjLxUScOot6jLRMz/67GyilEYMmP99LL0RQ== +"@react-navigation/native-stack@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-7.2.0.tgz#8aa489f88d662b3543a931b9cb934bb2e09a4893" + integrity sha512-mw7Nq9qQrGsmJmCTwIIWB7yY/3tWYXvQswx+HJScGAadIjemvytJXm1fcl3+YZ9T9Ym0aERcVe5kDs+ny3X4vA== dependencies: - "@react-navigation/core" "^6.4.16" + "@react-navigation/elements" "^2.2.5" + warn-once "^0.1.1" + +"@react-navigation/native@^7.0.14": + version "7.0.14" + resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-7.0.14.tgz#b3ee2879038dcf0523d26516af88d3adc549ce5e" + integrity sha512-Gi6lLw4VOGSWAhmUdJOMauOKGK51/YA1CprjXm91sNfgERWvznqEMw8QmUQx9SEqYfi0LfZhbzpMst09SJ00lw== + dependencies: + "@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" -"@react-navigation/routers@^6.1.9": - version "6.1.9" - resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-6.1.9.tgz#73f5481a15a38e36592a0afa13c3c064b9f90bed" - integrity sha512-lTM8gSFHSfkJvQkxacGM6VJtBt61ip2XO54aNfswD+KMw6eeZ4oehl7m0me3CR9hnDE4+60iAZR8sAhvCiI3NA== +"@react-navigation/routers@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@react-navigation/routers/-/routers-7.1.2.tgz#647a63e383673de0c4fc10c64a17f551d5da0a17" + integrity sha512-emdEjpVDK8zbiu2GChC8oYIAub9i/OpNuQJekVsbyFCBz4/TzaBzms38Q53YaNhdIFNmiYLfHv/Y1Ub7KYfm3w== dependencies: - nanoid "^3.1.23" + nanoid "3.3.8" "@remirror/core-constants@3.0.0": version "3.0.0" @@ -14370,7 +14374,12 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nanoid@^3.1.23, nanoid@^3.3.1, nanoid@^3.3.6: +nanoid@3.3.8: + version "3.3.8" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== + +nanoid@^3.3.1, nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== @@ -16068,7 +16077,7 @@ react-image-crop@^11.0.7: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -react-is@^16.13.0, react-is@^16.13.1, react-is@^16.7.0: +react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -16216,10 +16225,10 @@ react-native-safe-area-context@4.14.0: resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.14.0.tgz#138f4b2e180cb7517c78bd5f4d4cf91325ba0b1a" integrity sha512-/SyYpCulWQOnnXhRq6wepkhoyQMowHm1ptDyRz20s+YS/R9mbd+mK+jFyFCyXFJn8jp7vFl43VUCgspuOiEbwA== -react-native-screens@~4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-4.3.0.tgz#c4fef7583535c963e9257cdd1d91a9889961ab61" - integrity sha512-G0u8BPgu2vcRZoQTlRpBXKa0ElQSDvDBlRe6ncWwCeBmd5Uqa2I3tQ6Vn6trIE6+yneW/nD4p5wihEHlAWZPEw== +react-native-screens@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-4.6.0.tgz#2b60ab6f4cd5010c6f9cb01b034f2aa0e17ccf4b" + integrity sha512-PqGtR/moJLiTMSavhfo5spKXNHZrlxffq3g5UUVPmyuu7MmazFlPvYqiAYnR2iB9tkJYgvZO6sbjYAE7619M0A== dependencies: react-freeze "^1.0.0" warn-once "^0.1.0" @@ -18603,11 +18612,6 @@ use-isomorphic-layout-effect@^1.1.1: resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== -use-latest-callback@^0.1.9: - version "0.1.9" - resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.9.tgz#10191dc54257e65a8e52322127643a8940271e2a" - integrity sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw== - use-latest-callback@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.2.1.tgz#4d4e6a9e4817b13142834850dcfa8d24ca4569cf" @@ -18736,7 +18740,7 @@ walker@^1.0.7, walker@^1.0.8: dependencies: makeerror "1.0.12" -warn-once@0.1.1, warn-once@^0.1.0: +warn-once@0.1.1, warn-once@^0.1.0, warn-once@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/warn-once/-/warn-once-0.1.1.tgz#952088f4fb56896e73fd4e6a3767272a3fccce43" integrity sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==