about summary refs log tree commit diff
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-05-28 18:38:52 -0700
committerGitHub <noreply@github.com>2024-05-29 02:38:52 +0100
commit8f8af476cca54ad26b214e56af022b392d8f9389 (patch)
tree4f5fc2668501c1b0d9f008f2446493e590262a9e
parent888bec7b4fbe1b924d788333ec44c916fd3e8676 (diff)
downloadvoidsky-8f8af476cca54ad26b214e56af022b392d8f9389.tar.zst
Bump `react-navigation` (#4216)
* bump and rm patch

* fix types

* use `Home` default

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
-rw-r--r--package.json8
-rw-r--r--patches/@react-navigation+native+6.1.7.patch56
-rw-r--r--patches/@react-navigation+native+6.1.7.patch.md5
-rw-r--r--src/lib/routes/helpers.ts9
-rw-r--r--src/view/com/feeds/FeedPage.tsx5
-rw-r--r--yarn.lock63
6 files changed, 43 insertions, 103 deletions
diff --git a/package.json b/package.json
index 5a936e3c1..af3cb9999 100644
--- a/package.json
+++ b/package.json
@@ -72,10 +72,10 @@
     "@react-native-masked-view/masked-view": "0.3.0",
     "@react-native-menu/menu": "^0.8.0",
     "@react-native-picker/picker": "2.6.1",
-    "@react-navigation/bottom-tabs": "^6.5.7",
-    "@react-navigation/drawer": "^6.6.2",
-    "@react-navigation/native": "^6.1.6",
-    "@react-navigation/native-stack": "^6.9.12",
+    "@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",
     "@segment/analytics-next": "^1.51.3",
     "@segment/analytics-react": "^1.0.0-rc1",
     "@segment/analytics-react-native": "^2.10.1",
diff --git a/patches/@react-navigation+native+6.1.7.patch b/patches/@react-navigation+native+6.1.7.patch
deleted file mode 100644
index b604e2c1a..000000000
--- a/patches/@react-navigation+native+6.1.7.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff --git a/node_modules/@react-navigation/native/lib/commonjs/useLinking.js b/node_modules/@react-navigation/native/lib/commonjs/useLinking.js
-index ef4f368..2b0da35 100644
---- a/node_modules/@react-navigation/native/lib/commonjs/useLinking.js
-+++ b/node_modules/@react-navigation/native/lib/commonjs/useLinking.js
-@@ -273,8 +273,12 @@ function useLinking(ref, _ref) {
-           });
-           const currentIndex = history.index;
-           try {
--            if (nextIndex !== -1 && nextIndex < currentIndex) {
--              // An existing entry for this path exists and it's less than current index, go back to that
-+            if (
-+              nextIndex !== -1 &&
-+              nextIndex < currentIndex &&
-+              // We should only go back if the entry exists and it's less than current index
-+              history.get(nextIndex - currentIndex)
-+            ) {              // An existing entry for this path exists and it's less than current index, go back to that
-               await history.go(nextIndex - currentIndex);
-             } else {
-               // We couldn't find an existing entry to go back to, so we'll go back by the delta
-diff --git a/node_modules/@react-navigation/native/lib/module/useLinking.js b/node_modules/@react-navigation/native/lib/module/useLinking.js
-index 62a3b43..11a5a28 100644
---- a/node_modules/@react-navigation/native/lib/module/useLinking.js
-+++ b/node_modules/@react-navigation/native/lib/module/useLinking.js
-@@ -264,8 +264,12 @@ export default function useLinking(ref, _ref) {
-           });
-           const currentIndex = history.index;
-           try {
--            if (nextIndex !== -1 && nextIndex < currentIndex) {
--              // An existing entry for this path exists and it's less than current index, go back to that
-+            if (
-+              nextIndex !== -1 &&
-+              nextIndex < currentIndex &&
-+              // We should only go back if the entry exists and it's less than current index
-+              history.get(nextIndex - currentIndex)
-+            ) {              // An existing entry for this path exists and it's less than current index, go back to that
-               await history.go(nextIndex - currentIndex);
-             } else {
-               // We couldn't find an existing entry to go back to, so we'll go back by the delta
-diff --git a/node_modules/@react-navigation/native/src/useLinking.tsx b/node_modules/@react-navigation/native/src/useLinking.tsx
-index 3db40b7..9ba4ecd 100644
---- a/node_modules/@react-navigation/native/src/useLinking.tsx
-+++ b/node_modules/@react-navigation/native/src/useLinking.tsx
-@@ -381,7 +381,12 @@ export default function useLinking(
-           const currentIndex = history.index;
- 
-           try {
--            if (nextIndex !== -1 && nextIndex < currentIndex) {
-+            if (
-+              nextIndex !== -1 &&
-+              nextIndex < currentIndex &&
-+              // We should only go back if the entry exists and it's less than current index
-+              history.get(nextIndex - currentIndex)
-+            ) {
-               // An existing entry for this path exists and it's less than current index, go back to that
-               await history.go(nextIndex - currentIndex);
-             } else {
diff --git a/patches/@react-navigation+native+6.1.7.patch.md b/patches/@react-navigation+native+6.1.7.patch.md
deleted file mode 100644
index 60b0d4e14..000000000
--- a/patches/@react-navigation+native+6.1.7.patch.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# React Navigation history bug patch
-
-This patches react-navigation to fix the issues in https://github.com/bluesky-social/social-app/issues/710.
-
-This is based on the PR found at https://github.com/react-navigation/react-navigation/pull/11833
diff --git a/src/lib/routes/helpers.ts b/src/lib/routes/helpers.ts
index 0da885043..603b6f71b 100644
--- a/src/lib/routes/helpers.ts
+++ b/src/lib/routes/helpers.ts
@@ -1,5 +1,6 @@
 import {NavigationProp} from '@react-navigation/native'
-import {State, RouteParams} from './types'
+
+import {RouteParams, State} from './types'
 
 export function getRootNavigation<T extends {}>(
   nav: NavigationProp<T>,
@@ -10,7 +11,11 @@ export function getRootNavigation<T extends {}>(
   return nav
 }
 
-export function getCurrentRoute(state: State) {
+export function getCurrentRoute(state?: State) {
+  if (!state) {
+    return {name: 'Home'}
+  }
+
   let node = state.routes[state.index || 0]
   while (node.state?.routes && typeof node.state?.index === 'number') {
     node = node.state?.routes[node.state?.index]
diff --git a/src/view/com/feeds/FeedPage.tsx b/src/view/com/feeds/FeedPage.tsx
index f0a7c6238..c80740b76 100644
--- a/src/view/com/feeds/FeedPage.tsx
+++ b/src/view/com/feeds/FeedPage.tsx
@@ -3,7 +3,7 @@ import {View} from 'react-native'
 import {AppBskyActorDefs} from '@atproto/api'
 import {msg} from '@lingui/macro'
 import {useLingui} from '@lingui/react'
-import {useNavigation} from '@react-navigation/native'
+import {NavigationProp, useNavigation} from '@react-navigation/native'
 import {useQueryClient} from '@tanstack/react-query'
 
 import {getRootNavigation, getTabState, TabState} from '#/lib/routes/helpers'
@@ -19,6 +19,7 @@ import {useSetMinimalShellMode} from '#/state/shell'
 import {useComposerControls} from '#/state/shell/composer'
 import {useAnalytics} from 'lib/analytics/analytics'
 import {ComposeIcon2} from 'lib/icons'
+import {AllNavigatorParams} from 'lib/routes/types'
 import {s} from 'lib/styles'
 import {useHeaderOffset} from '#/components/hooks/useHeaderOffset'
 import {Feed} from '../posts/Feed'
@@ -48,7 +49,7 @@ export function FeedPage({
 }) {
   const {hasSession} = useSession()
   const {_} = useLingui()
-  const navigation = useNavigation()
+  const navigation = useNavigation<NavigationProp<AllNavigatorParams>>()
   const queryClient = useQueryClient()
   const {openComposer} = useComposerControls()
   const [isScrolledDown, setIsScrolledDown] = React.useState(false)
diff --git a/yarn.lock b/yarn.lock
index 07e2f73c2..75a15a8ee 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5669,55 +5669,55 @@
     invariant "^2.2.4"
     nullthrows "^1.1.1"
 
-"@react-navigation/bottom-tabs@^6.5.7":
-  version "6.5.8"
-  resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.8.tgz#9536c6e45154abc183c363d07c94991e10b14856"
-  integrity sha512-0aa/jXea+LyBgR5NoRNWGKw0aFhjHwCkusigMRXIrCA4kINauDcAO0w0iFbZeKfaTCVAix5kK5UxDJJ2aJpevg==
+"@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==
   dependencies:
-    "@react-navigation/elements" "^1.3.18"
+    "@react-navigation/elements" "^1.3.30"
     color "^4.2.3"
     warn-once "^0.1.0"
 
-"@react-navigation/core@^6.4.9":
-  version "6.4.9"
-  resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-6.4.9.tgz#aa09ce534f5393427cb993cf242abdbd848fb2c7"
-  integrity sha512-G9GH7bP9x0qqupxZnkSftnkn4JoXancElTvFc8FVGfEvxnxP+gBo3wqcknyBi7M5Vad4qecsYjCOa9wqsftv9g==
+"@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==
   dependencies:
     "@react-navigation/routers" "^6.1.9"
     escape-string-regexp "^4.0.0"
     nanoid "^3.1.23"
     query-string "^7.1.3"
     react-is "^16.13.0"
-    use-latest-callback "^0.1.5"
+    use-latest-callback "^0.1.9"
 
-"@react-navigation/drawer@^6.6.2":
-  version "6.6.3"
-  resolved "https://registry.yarnpkg.com/@react-navigation/drawer/-/drawer-6.6.3.tgz#ad48b3e0a2d2771e7fc8bc46a8b269ef2ae11e54"
-  integrity sha512-oQzHqH6svtSIun6+rikQtku6ye2CyyxT4xf3RQLVsBvK7+g4tDdKKLcjgoJmuT1zBZC3SSu3wNeqp8cg4cr2PQ==
+"@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==
   dependencies:
-    "@react-navigation/elements" "^1.3.18"
+    "@react-navigation/elements" "^1.3.30"
     color "^4.2.3"
     warn-once "^0.1.0"
 
-"@react-navigation/elements@^1.3.18":
-  version "1.3.18"
-  resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.18.tgz#d8364b40276f3efb9c229c39da3b8b465f18f0a2"
-  integrity sha512-/0hwnJkrr415yP0Hf4PjUKgGyfshrvNUKFXN85Mrt1gY49hy9IwxZgrrxlh0THXkPeq8q4VWw44eHDfAcQf20Q==
+"@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.12":
-  version "6.9.13"
-  resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.13.tgz#f308c398ee18fcd45de8ec7c04fe0641735feb31"
-  integrity sha512-ejlepMrvFneewL+XlXHHhn+6y3lwvavM4/R7XwBV0XJxCymujexK+7Vkg7UcvJ1lx4CRhOcyBSNfGmdNIHREyQ==
+"@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==
   dependencies:
-    "@react-navigation/elements" "^1.3.18"
+    "@react-navigation/elements" "^1.3.30"
     warn-once "^0.1.0"
 
-"@react-navigation/native@^6.1.6":
-  version "6.1.7"
-  resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-6.1.7.tgz#968ef85b76d35f63111890668836fe2f125bbf90"
-  integrity sha512-W6E3+AtTombMucCRo6q7vPmluq8hSjS+IxfazJ/SokOe7ChJX7eLvvralIsJkjFj3iWV1KgOSnHxa6hdiFasBw==
+"@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==
   dependencies:
-    "@react-navigation/core" "^6.4.9"
+    "@react-navigation/core" "^6.4.16"
     escape-string-regexp "^4.0.0"
     fast-deep-equal "^3.1.3"
     nanoid "^3.1.23"
@@ -21568,11 +21568,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.5:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.6.tgz#3fa6e7babbb5f9bfa24b5094b22939e1e92ebcf6"
-  integrity sha512-VO/P91A/PmKH9bcN9a7O3duSuxe6M14ZoYXgA6a8dab8doWNdhiIHzEkX/jFeTTRBsX0Ubk6nG4q2NIjNsj+bg==
-
 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"