From c85cb9170cf0cef70902861830f18c73dbbc4d78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Obudzi=C5=84ski?= Date: Thu, 24 Sep 2026 12:21:09 +0200 Subject: [PATCH 1/7] chore(deps): upgrade react-navigation packages and re-port patches --- package-lock.json | 161 +++++++----------- package.json | 14 +- patches/react-native-tab-view/details.md | 14 +- ...ab-view+4.3.2+001+fix-tab-animation.patch} | 7 +- ...2+002+fix-glitching-on-initial-load.patch} | 11 +- ....2+003+fix-web-onTabSelect-on-mount.patch} | 8 +- ...004+fix-native-onTabSelect-on-mount.patch} | 2 +- ....3.2+005+fix-pager-scrollleft-91610.patch} | 6 +- ...-failing-jest-by-disabling-esmodule.patch} | 0 ...-failing-jest-by-disabling-esmodule.patch} | 0 ...002+platform-navigation-stack-types.patch} | 10 +- ...+7.22.1+003+root-state-not-undefined.patch | 26 +++ ...-failing-jest-by-disabling-esmodule.patch} | 0 ...-failing-jest-by-disabling-esmodule.patch} | 0 ...history-go-popstate-fallback-timeout.patch | 29 ---- ...navigation+native+7.4.1+001+initial.patch} | 65 +++---- ...-failing-jest-by-disabling-esmodule.patch} | 0 ...-failing-jest-by-disabling-esmodule.patch} | 0 ...+stack+7.11.1+001+edge-drag-gesture.patch} | 17 +- ...n+stack+7.11.1+002+dontDetachScreen.patch} | 34 ++-- ...-failing-jest-by-disabling-esmodule.patch} | 0 patches/react-navigation/details.md | 62 +++---- 22 files changed, 197 insertions(+), 269 deletions(-) rename patches/react-native-tab-view/{react-native-tab-view+4.3.0+001+fix-tab-animation.patch => react-native-tab-view+4.3.2+001+fix-tab-animation.patch} (84%) rename patches/react-native-tab-view/{react-native-tab-view+4.3.0+002+fix-glitching-on-initial-load.patch => react-native-tab-view+4.3.2+002+fix-glitching-on-initial-load.patch} (90%) rename patches/react-native-tab-view/{react-native-tab-view+4.3.0+003+fix-web-onTabSelect-on-mount.patch => react-native-tab-view+4.3.2+003+fix-web-onTabSelect-on-mount.patch} (88%) rename patches/react-native-tab-view/{react-native-tab-view+4.3.0+004+fix-native-onTabSelect-on-mount.patch => react-native-tab-view+4.3.2+004+fix-native-onTabSelect-on-mount.patch} (97%) rename patches/react-native-tab-view/{react-native-tab-view+4.3.0+005+fix-pager-scrollleft-91610.patch => react-native-tab-view+4.3.2+005+fix-pager-scrollleft-91610.patch} (92%) rename patches/react-navigation/{@react-navigation+bottom-tabs+7.15.5+001+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+core+7.21.12+001+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+core+7.22.1+001+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+core+7.21.12+002+platform-navigation-stack-types.patch => @react-navigation+core+7.22.1+002+platform-navigation-stack-types.patch} (99%) create mode 100644 patches/react-navigation/@react-navigation+core+7.22.1+003+root-state-not-undefined.patch rename patches/react-navigation/{@react-navigation+elements+2.9.14+001+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+material-top-tabs+7.4.19+001+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch} (100%) delete mode 100644 patches/react-navigation/@react-navigation+native+7.1.33+003+increase-history-go-popstate-fallback-timeout.patch rename patches/react-navigation/{@react-navigation+native+7.1.33+001+initial.patch => @react-navigation+native+7.4.1+001+initial.patch} (77%) rename patches/react-navigation/{@react-navigation+native+7.1.33+002+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+native+7.4.1+002+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+native-stack+7.14.5+002+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+stack+7.8.5+001+edge-drag-gesture.patch => @react-navigation+stack+7.11.1+001+edge-drag-gesture.patch} (94%) rename patches/react-navigation/{@react-navigation+stack+7.8.5+002+dontDetachScreen.patch => @react-navigation+stack+7.11.1+002+dontDetachScreen.patch} (85%) rename patches/react-navigation/{@react-navigation+stack+7.8.5+004+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch} (100%) diff --git a/package-lock.json b/package-lock.json index 434aa9ce84cd..37aca4fc46dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,12 +45,12 @@ "@react-native-firebase/app": "^22.2.1", "@react-native-google-signin/google-signin": "^10.0.1", "@react-native-picker/picker": "2.11.3", - "@react-navigation/bottom-tabs": "7.15.5", - "@react-navigation/core": "7.21.12", - "@react-navigation/material-top-tabs": "7.4.19", - "@react-navigation/native": "7.1.33", - "@react-navigation/native-stack": "7.14.5", - "@react-navigation/stack": "7.8.5", + "@react-navigation/bottom-tabs": "7.19.1", + "@react-navigation/core": "7.22.1", + "@react-navigation/material-top-tabs": "7.7.1", + "@react-navigation/native": "7.4.1", + "@react-navigation/native-stack": "7.19.1", + "@react-navigation/stack": "7.11.1", "@react-ng/bounds-observer": "^0.2.1", "@rnmapbox/maps": "10.3.2", "@sbaiahmed1/react-native-biometrics": "0.15.0", @@ -188,7 +188,7 @@ "@react-native-community/cli-platform-ios": "20.1.0", "@react-native/babel-preset": "0.86.0", "@react-native/metro-config": "0.86.0", - "@react-navigation/devtools": "7.0.52", + "@react-navigation/devtools": "7.1.15", "@rock-js/platform-android": "0.13.4", "@rock-js/platform-ios": "0.13.4", "@rock-js/plugin-metro": "0.13.4", @@ -15118,17 +15118,17 @@ } }, "node_modules/@react-navigation/bottom-tabs": { - "version": "7.15.5", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.15.5.tgz", - "integrity": "sha512-wQHredlCrRmShWQ1vF4HUcLdaiJ8fUgnbaeQH7BJ7MQVQh4mdzab0IOY/4QSmUyNRB350oyu1biTycyQ5FKWMQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.19.1.tgz", + "integrity": "sha512-LE4CFDkwVQ1H+0CMTdanFJkXlgy4xaYoZMFrwS65iyMPDGfNBnGrqrNcn7nCiYWbodG2bYSbFmXlEyRE+Qh2xw==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.10", + "@react-navigation/elements": "^2.9.42", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0" }, "peerDependencies": { - "@react-navigation/native": "^7.1.33", + "@react-navigation/native": "^7.4.1", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", @@ -15136,16 +15136,15 @@ } }, "node_modules/@react-navigation/core": { - "version": "7.21.12", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.21.12.tgz", - "integrity": "sha512-FopGMGy5df+IMqUYg9w7ygwK0oP4RaQbMnpb7VFP30+vZdd8MqsAGc+bZZwdiVSnzK9hzhgJtZV9XF0ZFlUYOQ==", + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.22.1.tgz", + "integrity": "sha512-6JAaYM4u6RPtVMUjN5ovX5DNBdBZtDqebk7kEwlncUP6fP4P94+qEYv1bRmtxSFs7UxiZwQQs+jzTsBaW2WeyA==", "license": "MIT", "dependencies": { "@react-navigation/routers": "^7.6.4", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", - "query-string": "^7.1.3", "react-is": "^19.1.0", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" @@ -15155,15 +15154,15 @@ } }, "node_modules/@react-navigation/core/node_modules/react-is": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz", - "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.3.0.tgz", + "integrity": "sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA==", "license": "MIT" }, "node_modules/@react-navigation/devtools": { - "version": "7.0.52", - "resolved": "https://registry.npmjs.org/@react-navigation/devtools/-/devtools-7.0.52.tgz", - "integrity": "sha512-YqSr1c4USLCdTttltfwOXoPNHlEhnLmSSehGPt7j7yrXDXj55qRQA4aNF0p02paTN2phN17oBaBPcC2nSbqtfw==", + "version": "7.1.15", + "resolved": "https://registry.npmjs.org/@react-navigation/devtools/-/devtools-7.1.15.tgz", + "integrity": "sha512-NLwHCr4vcQ7hvUaFol+GyOje0oMCTMIRCITFVkcpST6auejSpwT3/obk8lI2b+k+B9J4vb7gKy+3inW1ZlqG/A==", "dev": true, "license": "MIT", "dependencies": { @@ -15176,9 +15175,9 @@ } }, "node_modules/@react-navigation/elements": { - "version": "2.9.14", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.14.tgz", - "integrity": "sha512-lKqzu+su2pI/YIZmR7L7xdOs4UL+rVXKJAMpRMBrwInEy96SjIFst6QDGpE89Dunnu3VjVpjWfByo9f2GWBHDQ==", + "version": "2.9.42", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.42.tgz", + "integrity": "sha512-3U1ZmXXoSrJEex+f8I4sRAzVL0OwLpgTEzORgjQGExWLjGrvn7QofK8cjNgBQHjRiTTQXAl8QMZvrdejg7yJAA==", "license": "MIT", "dependencies": { "color": "^4.2.3", @@ -15187,7 +15186,7 @@ }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", - "@react-navigation/native": "^7.2.2", + "@react-navigation/native": "^7.4.1", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" @@ -15199,17 +15198,17 @@ } }, "node_modules/@react-navigation/material-top-tabs": { - "version": "7.4.19", - "resolved": "https://registry.npmjs.org/@react-navigation/material-top-tabs/-/material-top-tabs-7.4.19.tgz", - "integrity": "sha512-jYGgItg51bjy3ypKeLm7sNEmGh0tFLn0VLV/p06iUprwKzuIvQESFin9M2+HUHa0pE1+g5tnf/ECKQJiAw712Q==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@react-navigation/material-top-tabs/-/material-top-tabs-7.7.1.tgz", + "integrity": "sha512-1oH+mpnxzfsQ7Zvok+f+7uynaJzHQ/O+PL8LC4gUXK345WsaeIaXLRqs+eRTyyzNU7II8IL8s3MedQzZJmW3BQ==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.10", + "@react-navigation/elements": "^2.9.42", "color": "^4.2.3", - "react-native-tab-view": "^4.3.0" + "react-native-tab-view": "^4.3.2" }, "peerDependencies": { - "@react-navigation/native": "^7.1.33", + "@react-navigation/native": "^7.4.1", "react": ">= 18.2.0", "react-native": "*", "react-native-pager-view": ">= 6.0.0", @@ -15217,15 +15216,16 @@ } }, "node_modules/@react-navigation/native": { - "version": "7.1.33", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.1.33.tgz", - "integrity": "sha512-DpFdWGcgLajKZ1TuIvDNQsblN2QaUFWpTQaB8v7WRP9Mix8H/6TFoIrZd93pbymI2hybd6UYrD+lI408eWVcfw==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.4.1.tgz", + "integrity": "sha512-pEnu5XzAXV6RWr6A6pmZ7qLB+O6TJWMhBO25AjckMdr596UWulMPHQCtBcnOUfg6K+2h9ZUctHF2E5Xu4vcOrQ==", "license": "MIT", "dependencies": { - "@react-navigation/core": "^7.16.1", + "@react-navigation/core": "^7.22.1", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", + "standard-navigation": "^0.0.8", "use-latest-callback": "^0.2.4" }, "peerDependencies": { @@ -15234,18 +15234,18 @@ } }, "node_modules/@react-navigation/native-stack": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.14.5.tgz", - "integrity": "sha512-NuyMf21kKk3jODvYgpcDA+HwyWr/KEj72ciqquyEupZlsmQ3WNUGgdaixEB3A19+iPOvHLQzDLcoTrrqZk8Leg==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.19.1.tgz", + "integrity": "sha512-YB3DLKXe1CLZAtJWgH/F3M5fWRALm1VbgVm91FppGYqPYfVZrD7mJaINaif2RIC4sZW7BziCE57IZ68vlINdkg==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.10", + "@react-navigation/elements": "^2.9.42", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0", "warn-once": "^0.1.1" }, "peerDependencies": { - "@react-navigation/native": "^7.1.33", + "@react-navigation/native": "^7.4.1", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0", @@ -15262,17 +15262,17 @@ } }, "node_modules/@react-navigation/stack": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-7.8.5.tgz", - "integrity": "sha512-ZOD1gUhWpbI+1PD5mKZFnLBh3Vfq2bqhO5/NeEruaQwNdXkiiHpi59OUKMnFRQURjjYXf/skTM9hJa6zHdiyFw==", + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-7.11.1.tgz", + "integrity": "sha512-OoqgwCGtnb7mgweFncMV/KBgebATJG5Bq7LN2E68ZDDJtCeDcHbVMJS3KOAkXwkuB+1LhDds4eGi7KBxe3YqAg==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.10", + "@react-navigation/elements": "^2.9.42", "color": "^4.2.3", "use-latest-callback": "^0.2.4" }, "peerDependencies": { - "@react-navigation/native": "^7.1.33", + "@react-navigation/native": "^7.4.1", "react": ">= 18.2.0", "react-native": "*", "react-native-gesture-handler": ">= 2.0.0", @@ -25062,15 +25062,6 @@ "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", "license": "MIT" }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -28061,15 +28052,6 @@ "node": ">=8" } }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/find-babel-config": { "version": "2.0.0", "dev": true, @@ -36957,24 +36939,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "license": "MIT", - "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -38258,9 +38222,9 @@ } }, "node_modules/react-native-tab-view": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-4.3.0.tgz", - "integrity": "sha512-qPMF75uz/7+MuVG2g+YETdGMzlWZnhC6iI4h/7EBbwIBwNBIBi2z4OA6KhY3IOOBwGHXEIz5IyA6doDqifYBHg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-4.3.2.tgz", + "integrity": "sha512-QCHX9bTGMeME5pt4jJ1/H7oshX7Z2nA/Ts3m7FpKUbWfPPIL8rlNLZwkedgV273Eqau8jj8deRtfSZl9LCctCw==", "license": "MIT", "dependencies": { "use-latest-callback": "^0.2.4" @@ -40209,15 +40173,6 @@ "integrity": "sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==", "license": "MIT" }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -40383,6 +40338,15 @@ "node": ">=8" } }, + "node_modules/standard-navigation": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/standard-navigation/-/standard-navigation-0.0.8.tgz", + "integrity": "sha512-TyVbo7INUDWtsUWDFn8RR7kwR87U0S4xHfLfbbnyeC581TmmyqQ+eM+nPw8rQTSD8QitRVcYfPaSHr/QJiUy1g==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, "node_modules/statuses": { "version": "2.0.1", "license": "MIT", @@ -41127,15 +41091,6 @@ "node": ">= 0.10.0" } }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/string_decoder": { "version": "1.1.1", "devOptional": true, diff --git a/package.json b/package.json index 4739db2b92b7..78708b286b36 100644 --- a/package.json +++ b/package.json @@ -121,12 +121,12 @@ "@react-native-firebase/app": "^22.2.1", "@react-native-google-signin/google-signin": "^10.0.1", "@react-native-picker/picker": "2.11.3", - "@react-navigation/bottom-tabs": "7.15.5", - "@react-navigation/core": "7.21.12", - "@react-navigation/material-top-tabs": "7.4.19", - "@react-navigation/native": "7.1.33", - "@react-navigation/native-stack": "7.14.5", - "@react-navigation/stack": "7.8.5", + "@react-navigation/bottom-tabs": "7.19.1", + "@react-navigation/core": "7.22.1", + "@react-navigation/material-top-tabs": "7.7.1", + "@react-navigation/native": "7.4.1", + "@react-navigation/native-stack": "7.19.1", + "@react-navigation/stack": "7.11.1", "@react-ng/bounds-observer": "^0.2.1", "@rnmapbox/maps": "10.3.2", "@sbaiahmed1/react-native-biometrics": "0.15.0", @@ -264,7 +264,7 @@ "@react-native-community/cli-platform-ios": "20.1.0", "@react-native/babel-preset": "0.86.0", "@react-native/metro-config": "0.86.0", - "@react-navigation/devtools": "7.0.52", + "@react-navigation/devtools": "7.1.15", "@rock-js/platform-android": "0.13.4", "@rock-js/platform-ios": "0.13.4", "@rock-js/plugin-metro": "0.13.4", diff --git a/patches/react-native-tab-view/details.md b/patches/react-native-tab-view/details.md index c6952b53e27b..1edc11f5121c 100644 --- a/patches/react-native-tab-view/details.md +++ b/patches/react-native-tab-view/details.md @@ -1,6 +1,6 @@ # `react-native-tab-view` patches -### [react-native-tab-view+4.3.0+001+fix-tab-animation.patch](react-native-tab-view+4.3.0+001+fix-tab-animation.patch) +### [react-native-tab-view+4.3.2+001+fix-tab-animation.patch](react-native-tab-view+4.3.2+001+fix-tab-animation.patch) - Reason: @@ -13,18 +13,22 @@ - E/App issue: 🛑 - PR Introducing Patch: [#39854](https://github.com/Expensify/App/pull/39854) -### [react-native-tab-view+4.3.0+002+fix-glitching-on-initial-load.patch](react-native-tab-view+4.3.0+002+fix-glitching-on-initial-load.patch) +### [react-native-tab-view+4.3.2+002+fix-glitching-on-initial-load.patch](react-native-tab-view+4.3.2+002+fix-glitching-on-initial-load.patch) - Reason: ``` There was a visible glitching on initial load. The glitch was visible because two animated values: position and translateX were equal to 0 for a brief moment before changing to a proper value. ``` + + The 4.3.2 re-port dropped the `lib/typescript/src/PanResponderAdapter.d.ts.map` hunk. It only rewrites a + source map for declaration files, which nothing at runtime reads, and its base content changed in 4.3.2. + The `PanResponderAdapter.js` and `.js.map` hunks are carried over unchanged. - Upstream PR/issue: https://github.com/react-navigation/react-navigation/pull/12627#issuecomment-2945055209 - E/App issue: https://github.com/Expensify/App/issues/62346 - PR Introducing Patch: [#63570](https://github.com/Expensify/App/pull/63570) -### [react-native-tab-view+4.3.0+003+fix-web-onTabSelect-on-mount.patch](react-native-tab-view+4.3.0+003+fix-web-onTabSelect-on-mount.patch) +### [react-native-tab-view+4.3.2+003+fix-web-onTabSelect-on-mount.patch](react-native-tab-view+4.3.2+003+fix-web-onTabSelect-on-mount.patch) - Reason: ``` @@ -35,7 +39,7 @@ - E/App issue: https://github.com/Expensify/App/issues/71913#issuecomment-3584103273 - PR Introducing Patch: [#76586](https://github.com/Expensify/App/pull/76586) -### [react-native-tab-view+4.3.0+004+fix-native-onTabSelect-on-mount.patch](react-native-tab-view+4.3.0+004+fix-native-onTabSelect-on-mount.patch) +### [react-native-tab-view+4.3.2+004+fix-native-onTabSelect-on-mount.patch](react-native-tab-view+4.3.2+004+fix-native-onTabSelect-on-mount.patch) - Reason: ``` @@ -46,7 +50,7 @@ - Upstream PR/issue: 🛑 (must merge https://github.com/react-navigation/react-navigation/pull/12627 first) - E/App issue: https://github.com/Expensify/App/issues/83010 -### [react-native-tab-view+4.3.0+005+fix-pager-scrollleft-91610.patch](react-native-tab-view+4.3.0+005+fix-pager-scrollleft-91610.patch) +### [react-native-tab-view+4.3.2+005+fix-pager-scrollleft-91610.patch](react-native-tab-view+4.3.2+005+fix-pager-scrollleft-91610.patch) - Reason: ``` diff --git a/patches/react-native-tab-view/react-native-tab-view+4.3.0+001+fix-tab-animation.patch b/patches/react-native-tab-view/react-native-tab-view+4.3.2+001+fix-tab-animation.patch similarity index 84% rename from patches/react-native-tab-view/react-native-tab-view+4.3.0+001+fix-tab-animation.patch rename to patches/react-native-tab-view/react-native-tab-view+4.3.2+001+fix-tab-animation.patch index ff7f28cbb451..688814ff9bc4 100644 --- a/patches/react-native-tab-view/react-native-tab-view+4.3.0+001+fix-tab-animation.patch +++ b/patches/react-native-tab-view/react-native-tab-view+4.3.2+001+fix-tab-animation.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx b/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx -index d4a0a0e..0000001 100644 +index d4a0a0e..d66b0cb 100644 --- a/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx +++ b/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx @@ -134,9 +134,10 @@ export function PagerViewAdapter({ @@ -14,10 +14,7 @@ index d4a0a0e..0000001 100644 ); return children({ -@@ -163,9 +164,11 @@ export function PagerViewAdapter({ - ], - { useNativeDriver } - )} +@@ -166,6 +167,8 @@ export function PagerViewAdapter({ onPageSelected={(e) => { const index = e.nativeEvent.position; indexRef.current = index; diff --git a/patches/react-native-tab-view/react-native-tab-view+4.3.0+002+fix-glitching-on-initial-load.patch b/patches/react-native-tab-view/react-native-tab-view+4.3.2+002+fix-glitching-on-initial-load.patch similarity index 90% rename from patches/react-native-tab-view/react-native-tab-view+4.3.0+002+fix-glitching-on-initial-load.patch rename to patches/react-native-tab-view/react-native-tab-view+4.3.2+002+fix-glitching-on-initial-load.patch index bb6e9c1a5857..01e6a306a1f5 100644 --- a/patches/react-native-tab-view/react-native-tab-view+4.3.0+002+fix-glitching-on-initial-load.patch +++ b/patches/react-native-tab-view/react-native-tab-view+4.3.2+002+fix-glitching-on-initial-load.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/react-native-tab-view/lib/module/PanResponderAdapter.js b/node_modules/react-native-tab-view/lib/module/PanResponderAdapter.js -index 22c1705..0000002 100644 +index 22c1705..fdb8c83 100644 --- a/node_modules/react-native-tab-view/lib/module/PanResponderAdapter.js +++ b/node_modules/react-native-tab-view/lib/module/PanResponderAdapter.js @@ -79,10 +79,38 @@ export function PanResponderAdapter({ @@ -85,12 +85,3 @@ index 95b628e..2a31760 100644 -{"version":3,"names":["React","Animated","Keyboard","PanResponder","StyleSheet","View","useLatestCallback","useAnimatedValue","jsx","_jsx","DEAD_ZONE","DefaultTransitionSpec","timing","spring","stiffness","damping","mass","overshootClamping","PanResponderAdapter","layout","keyboardDismissMode","swipeEnabled","navigationState","onIndexChange","onTabSelect","onSwipeStart","onSwipeEnd","children","style","animationEnabled","layoutDirection","routes","index","panX","listenersRef","useRef","navigationStateRef","layoutRef","onIndexChangeRef","onTabSelectRef","currentIndexRef","pendingIndexRef","undefined","swipeVelocityThreshold","swipeDistanceThreshold","width","jumpToIndex","animate","offset","current","transitionConfig","parallel","toValue","useNativeDriver","start","finished","setValue","useEffect","useLayoutEffect","dismiss","isMovingHorizontally","_","gestureState","Math","abs","dx","dy","vx","vy","canMoveScreen","event","diffX","length","startGesture","stopAnimation","setOffset","_value","respondToGesture","position","_offset","next","ceil","floor","forEach","listener","finishGesture","flattenOffset","currentIndex","nextIndex","round","min","max","isFinite","addEnterListener","push","indexOf","splice","jumpTo","key","findIndex","route","panResponder","create","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","onPanResponderTerminate","onPanResponderRelease","onPanResponderTerminationRequest","maxTranslate","translateX","multiply","interpolate","inputRange","outputRange","extrapolate","useMemo","divide","Value","render","styles","sheet","transform","panHandlers","Children","map","child","i","focused","absoluteFill","flex","flexDirection","alignItems"],"sourceRoot":"../../src","sources":["PanResponderAdapter.tsx"],"mappings":"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","ignoreList":[]} +{"version":3,"names":["React","Animated","Keyboard","PanResponder","StyleSheet","View","useLatestCallback","useAnimatedValue","jsx","_jsx","DEAD_ZONE","DefaultTransitionSpec","timing","spring","stiffness","damping","mass","overshootClamping","PanResponderAdapter","layout","keyboardDismissMode","swipeEnabled","navigationState","onIndexChange","onTabSelect","onSwipeStart","onSwipeEnd","children","style","animationEnabled","layoutDirection","routes","index","panX","listenersRef","useRef","navigationStateRef","layoutRef","onIndexChangeRef","onTabSelectRef","currentIndexRef","pendingIndexRef","undefined","swipeVelocityThreshold","swipeDistanceThreshold","width","jumpToIndex","animate","offset","current","transitionConfig","parallel","toValue","useNativeDriver","start","finished","setValue","useEffect","position","setPosition","useState","translateX","setTranslateX","divide","maxTranslate","length","multiply","interpolate","inputRange","outputRange","extrapolate","dismiss","isMovingHorizontally","_","gestureState","Math","abs","dx","dy","vx","vy","canMoveScreen","event","diffX","startGesture","stopAnimation","setOffset","_value","respondToGesture","_offset","next","ceil","floor","forEach","listener","finishGesture","flattenOffset","currentIndex","nextIndex","round","min","max","isFinite","addEnterListener","push","indexOf","splice","jumpTo","key","findIndex","route","panResponder","create","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","onPanResponderTerminate","onPanResponderRelease","onPanResponderTerminationRequest","Value","render","styles","sheet","transform","panHandlers","Children","map","child","i","focused","absoluteFill","flex","flexDirection","alignItems"],"sourceRoot":"../../src","sources":["PanResponderAdapter.tsx"],"mappings":"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","ignoreList":[]} \ No newline at end of file -diff --git a/node_modules/react-native-tab-view/lib/typescript/src/PanResponderAdapter.d.ts.map b/node_modules/react-native-tab-view/lib/typescript/src/PanResponderAdapter.d.ts.map -index f477de0..4d55ccb 100644 ---- a/node_modules/react-native-tab-view/lib/typescript/src/PanResponderAdapter.d.ts.map -+++ b/node_modules/react-native-tab-view/lib/typescript/src/PanResponderAdapter.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"PanResponderAdapter.d.ts","sourceRoot":"","sources":["../../../src/PanResponderAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,QAAQ,EAOT,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,iBAAiB,EACjB,MAAM,EAEN,eAAe,EACf,UAAU,EACV,KAAK,EACN,MAAM,SAAS,CAAC;AAGjB,KAAK,KAAK,CAAC,CAAC,SAAS,KAAK,IAAI,UAAU,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACjD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,CACR,KAAK,EAAE,iBAAiB,GAAG;QAGzB,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAGjD,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;QAGvD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC/B,KACE,KAAK,CAAC,YAAY,CAAC;CACzB,CAAC;AAYF,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,KAAK,EAAE,EACnD,MAAM,EACN,mBAA4B,EAC5B,YAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,KAAK,EACL,gBAAwB,EACxB,eAAuB,GACxB,EAAE,KAAK,CAAC,CAAC,CAAC,0EA8QV"} -\ No newline at end of file -+{"version":3,"file":"PanResponderAdapter.d.ts","sourceRoot":"","sources":["../../../src/PanResponderAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,QAAQ,EAOT,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,iBAAiB,EACjB,MAAM,EAEN,eAAe,EACf,UAAU,EACV,KAAK,EACN,MAAM,SAAS,CAAC;AAGjB,KAAK,KAAK,CAAC,CAAC,SAAS,KAAK,IAAI,UAAU,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACjD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACpC,QAAQ,EAAE,CACR,KAAK,EAAE,iBAAiB,GAAG;QAGzB,QAAQ,EAAE,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAGjD,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC;QAGvD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC/B,KACE,KAAK,CAAC,YAAY,CAAC;CACzB,CAAC;AAYF,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,KAAK,EAAE,EACnD,MAAM,EACN,mBAA4B,EAC5B,YAAmB,EACnB,eAAe,EACf,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,KAAK,EACL,gBAAwB,EACxB,eAAuB,GACxB,EAAE,KAAK,CAAC,CAAC,CAAC,0EAiSV"} -\ No newline at end of file diff --git a/patches/react-native-tab-view/react-native-tab-view+4.3.0+003+fix-web-onTabSelect-on-mount.patch b/patches/react-native-tab-view/react-native-tab-view+4.3.2+003+fix-web-onTabSelect-on-mount.patch similarity index 88% rename from patches/react-native-tab-view/react-native-tab-view+4.3.0+003+fix-web-onTabSelect-on-mount.patch rename to patches/react-native-tab-view/react-native-tab-view+4.3.2+003+fix-web-onTabSelect-on-mount.patch index ff1df355c8df..37cd3b30b474 100644 --- a/patches/react-native-tab-view/react-native-tab-view+4.3.0+003+fix-web-onTabSelect-on-mount.patch +++ b/patches/react-native-tab-view/react-native-tab-view+4.3.2+003+fix-web-onTabSelect-on-mount.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/react-native-tab-view/lib/module/PanResponderAdapter.js b/node_modules/react-native-tab-view/lib/module/PanResponderAdapter.js -index 0000002..0000003 100644 +index fdb8c83..7ae690b 100644 --- a/node_modules/react-native-tab-view/lib/module/PanResponderAdapter.js +++ b/node_modules/react-native-tab-view/lib/module/PanResponderAdapter.js @@ -39,6 +39,7 @@ export function PanResponderAdapter({ @@ -10,14 +10,15 @@ index 0000002..0000003 100644 const swipeVelocityThreshold = 0.15; const swipeDistanceThreshold = layout.width / 1.75; const jumpToIndex = useLatestCallback((index, animate = animationEnabled) => { -@@ -94,5 +95,6 @@ export function PanResponderAdapter({ +@@ -94,6 +95,7 @@ export function PanResponderAdapter({ setPosition(null); // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect setTranslateX(null); + hasCalledInitialTabSelectRef.current = false; return; } -@@ -110,5 +112,11 @@ export function PanResponderAdapter({ + +@@ -110,6 +112,12 @@ export function PanResponderAdapter({ outputRange: [-maxTranslate, 0], extrapolate: 'clamp' }), layoutDirection === 'rtl' ? -1 : 1)); @@ -29,3 +30,4 @@ index 0000002..0000003 100644 + } }, [layout.width, panX, routes.length, layoutDirection]); React.useEffect(() => { + if (keyboardDismissMode === 'auto') { diff --git a/patches/react-native-tab-view/react-native-tab-view+4.3.0+004+fix-native-onTabSelect-on-mount.patch b/patches/react-native-tab-view/react-native-tab-view+4.3.2+004+fix-native-onTabSelect-on-mount.patch similarity index 97% rename from patches/react-native-tab-view/react-native-tab-view+4.3.0+004+fix-native-onTabSelect-on-mount.patch rename to patches/react-native-tab-view/react-native-tab-view+4.3.2+004+fix-native-onTabSelect-on-mount.patch index 3ea408f3ca68..a7eed8165abe 100644 --- a/patches/react-native-tab-view/react-native-tab-view+4.3.0+004+fix-native-onTabSelect-on-mount.patch +++ b/patches/react-native-tab-view/react-native-tab-view+4.3.2+004+fix-native-onTabSelect-on-mount.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx b/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx -index 0000001..01e208c 100644 +index d66b0cb..01e208c 100644 --- a/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx +++ b/node_modules/react-native-tab-view/src/PagerViewAdapter.tsx @@ -57,14 +57,28 @@ export function PagerViewAdapter({ diff --git a/patches/react-native-tab-view/react-native-tab-view+4.3.0+005+fix-pager-scrollleft-91610.patch b/patches/react-native-tab-view/react-native-tab-view+4.3.2+005+fix-pager-scrollleft-91610.patch similarity index 92% rename from patches/react-native-tab-view/react-native-tab-view+4.3.0+005+fix-pager-scrollleft-91610.patch rename to patches/react-native-tab-view/react-native-tab-view+4.3.2+005+fix-pager-scrollleft-91610.patch index 6ec3f56eec6c..bbeb68f07d30 100644 --- a/patches/react-native-tab-view/react-native-tab-view+4.3.0+005+fix-pager-scrollleft-91610.patch +++ b/patches/react-native-tab-view/react-native-tab-view+4.3.2+005+fix-pager-scrollleft-91610.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/react-native-tab-view/lib/module/TabView.js b/node_modules/react-native-tab-view/lib/module/TabView.js -index 0000004..0000005 100644 +index 079ee72..2153b63 100644 --- a/node_modules/react-native-tab-view/lib/module/TabView.js +++ b/node_modules/react-native-tab-view/lib/module/TabView.js -@@ -41,6 +41,27 @@ +@@ -41,6 +41,27 @@ export function TabView({ height: 0, ...initialLayout }); @@ -30,7 +30,7 @@ index 0000004..0000005 100644 const jumpToIndex = index => { if (index !== navigationState.index) { onIndexChange(index); -@@ -66,6 +87,7 @@ +@@ -66,6 +87,7 @@ export function TabView({ ...sceneOptions?.[route.key] }])); return /*#__PURE__*/_jsx(View, { diff --git a/patches/react-navigation/@react-navigation+bottom-tabs+7.15.5+001+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+bottom-tabs+7.15.5+001+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+core+7.21.12+001+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+core+7.22.1+001+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+core+7.21.12+001+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+core+7.22.1+001+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+core+7.21.12+002+platform-navigation-stack-types.patch b/patches/react-navigation/@react-navigation+core+7.22.1+002+platform-navigation-stack-types.patch similarity index 99% rename from patches/react-navigation/@react-navigation+core+7.21.12+002+platform-navigation-stack-types.patch rename to patches/react-navigation/@react-navigation+core+7.22.1+002+platform-navigation-stack-types.patch index 65c6d6e0948a..94ab2b672599 100644 --- a/patches/react-navigation/@react-navigation+core+7.21.12+002+platform-navigation-stack-types.patch +++ b/patches/react-navigation/@react-navigation+core+7.22.1+002+platform-navigation-stack-types.patch @@ -57,7 +57,7 @@ index dfd9de7..0d14027 100644 // @ts-expect-error: we check for function but TS still complains typeof curr !== 'function' ? curr : curr({ diff --git a/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js b/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js -index 2ed8725..8147d8f 100644 +index f01bdd6..6427dab 100644 --- a/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js +++ b/node_modules/@react-navigation/core/lib/module/useNavigationBuilder.js @@ -167,7 +167,7 @@ const getStateFromParams = (params, type) => { @@ -79,7 +79,7 @@ index 2ed8725..8147d8f 100644 state, navigation, diff --git a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts -index 0b4f4c2..4dc5941 100644 +index 23af668..feb6f47 100644 --- a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts +++ b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts @@ -109,7 +109,16 @@ declare global { @@ -161,7 +161,7 @@ index 5e37fe4..f0129f1 100644 dispatch(action: Readonly<{ type: string; diff --git a/node_modules/@react-navigation/core/lib/typescript/src/useNavigationBuilder.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/useNavigationBuilder.d.ts -index 36566fb..fc4eb26 100644 +index ab8f81e..1819ea3 100644 --- a/node_modules/@react-navigation/core/lib/typescript/src/useNavigationBuilder.d.ts +++ b/node_modules/@react-navigation/core/lib/typescript/src/useNavigationBuilder.d.ts @@ -1,6 +1,6 @@ @@ -182,7 +182,7 @@ index 36566fb..fc4eb26 100644 navigation: { dispatch(action: Readonly<{ diff --git a/node_modules/@react-navigation/core/src/types.tsx b/node_modules/@react-navigation/core/src/types.tsx -index 68e52ae..4eb998a 100644 +index 580f300..f3c6ca9 100644 --- a/node_modules/@react-navigation/core/src/types.tsx +++ b/node_modules/@react-navigation/core/src/types.tsx @@ -157,6 +157,29 @@ declare global { @@ -362,7 +362,7 @@ index 320efcf..e78fa6d 100644 return optionsList.reduce( (acc, curr) => diff --git a/node_modules/@react-navigation/core/src/useNavigationBuilder.tsx b/node_modules/@react-navigation/core/src/useNavigationBuilder.tsx -index 9f0d412..bc976eb 100644 +index 16e44a5..2ad3322 100644 --- a/node_modules/@react-navigation/core/src/useNavigationBuilder.tsx +++ b/node_modules/@react-navigation/core/src/useNavigationBuilder.tsx @@ -27,6 +27,7 @@ import { NavigationStateContext } from './NavigationStateContext'; diff --git a/patches/react-navigation/@react-navigation+core+7.22.1+003+root-state-not-undefined.patch b/patches/react-navigation/@react-navigation+core+7.22.1+003+root-state-not-undefined.patch new file mode 100644 index 000000000000..15ea671710c6 --- /dev/null +++ b/patches/react-navigation/@react-navigation+core+7.22.1+003+root-state-not-undefined.patch @@ -0,0 +1,26 @@ +diff --git a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts +index feb6f47..4dc5941 100644 +--- a/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts ++++ b/node_modules/@react-navigation/core/lib/typescript/src/types.d.ts +@@ -720,7 +720,7 @@ export type NavigationContainerRef = NavigationHelpers = + /** + * Get the rehydrated navigation state of the navigation tree. + */ +- getRootState(): NavigationState | undefined; ++ getRootState(): NavigationState; + /** + * Get the currently focused navigation route. + */ diff --git a/patches/react-navigation/@react-navigation+elements+2.9.14+001+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+elements+2.9.14+001+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+material-top-tabs+7.4.19+001+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+material-top-tabs+7.4.19+001+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+native+7.1.33+003+increase-history-go-popstate-fallback-timeout.patch b/patches/react-navigation/@react-navigation+native+7.1.33+003+increase-history-go-popstate-fallback-timeout.patch deleted file mode 100644 index 4d7806ce3819..000000000000 --- a/patches/react-navigation/@react-navigation+native+7.1.33+003+increase-history-go-popstate-fallback-timeout.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/node_modules/@react-navigation/native/lib/module/createMemoryHistory.js b/node_modules/@react-navigation/native/lib/module/createMemoryHistory.js ---- a/node_modules/@react-navigation/native/lib/module/createMemoryHistory.js -+++ b/node_modules/@react-navigation/native/lib/module/createMemoryHistory.js -@@ -189,10 +189,14 @@ - cb: done - }); - -- // If navigation didn't happen within 100ms, assume that it won't happen -+ // If navigation didn't happen within 1000ms, assume that it won't happen - // This may not be accurate, but hopefully it won't take so much time - // In Chrome, navigation seems to happen instantly in next microtask -- // But on Firefox, it seems to take much longer, around 50ms from our testing -+ // But on Firefox the traversal can take 500ms+ when the main thread is busy -+ // (measured up to ~900ms while rendering a newly pushed screen). A 100ms timeout -+ // routinely resolved before the traversal finished and removed the pending entry, -+ // so the late `popstate` was misclassified by `listen` as a user-initiated -+ // back/forward navigation and reset the app to a stale route - // We're using a hacky timeout since there doesn't seem to be way to know for sure - const timer = setTimeout(() => { - const foundIndex = pending.findIndex(it => it.ref === done); -@@ -201,7 +205,7 @@ - pending.splice(foundIndex, 1); - } - index = this.index; -- }, 100); -+ }, 1000); - const onPopState = () => { - // Fix createMemoryHistory.index variable's value - // as it may go out of sync when navigating in the browser. diff --git a/patches/react-navigation/@react-navigation+native+7.1.33+001+initial.patch b/patches/react-navigation/@react-navigation+native+7.4.1+001+initial.patch similarity index 77% rename from patches/react-navigation/@react-navigation+native+7.1.33+001+initial.patch rename to patches/react-navigation/@react-navigation+native+7.4.1+001+initial.patch index 6c845817d9b0..a47cdcba1660 100644 --- a/patches/react-navigation/@react-navigation+native+7.1.33+001+initial.patch +++ b/patches/react-navigation/@react-navigation+native+7.4.1+001+initial.patch @@ -1,12 +1,13 @@ diff --git a/node_modules/@react-navigation/native/lib/module/createMemoryHistory.js b/node_modules/@react-navigation/native/lib/module/createMemoryHistory.js -index 474db5e..4d94ed8 100644 +index 9034278..d639a23 100644 --- a/node_modules/@react-navigation/native/lib/module/createMemoryHistory.js +++ b/node_modules/@react-navigation/native/lib/module/createMemoryHistory.js -@@ -1,10 +1,27 @@ +@@ -1,11 +1,28 @@ "use strict"; import { nanoid } from 'nanoid/non-secure'; +import { findFocusedRouteKey } from "./findFocusedRouteKey.js"; + const getPathWithoutHash = path => path.split('#')[0] ?? ''; export function createMemoryHistory() { let index = 0; let items = []; @@ -30,19 +31,17 @@ index 474db5e..4d94ed8 100644 // Pending callbacks for `history.go(n)` // We might modify the callback stored if it was interrupted, so we have a ref to identify it const pending = []; -@@ -17,7 +34,10 @@ export function createMemoryHistory() { - it.cb = () => cb(true); +@@ -19,6 +36,9 @@ export function createMemoryHistory() { }); }; -- const history = { -+ return { + const history = { + get items() { + return items; + }, get index() { // We store an id in the state instead of an index // Index could get out of sync with in-memory values if page reloads -@@ -32,12 +52,13 @@ export function createMemoryHistory() { +@@ -33,7 +53,8 @@ export function createMemoryHistory() { return items[index]; }, backIndex({ @@ -50,15 +49,18 @@ index 474db5e..4d94ed8 100644 + path, + state }) { - // We need to find the index from the element before current to get closest path to go back to - for (let i = index - 1; i >= 0; i--) { - const item = items[i]; -- if (item.path === path) { -+ if (item.path === path && findFocusedRouteKey(item.state) === findFocusedRouteKey(state)) { + const pathWithoutHash = getPathWithoutHash(path); + +@@ -43,7 +64,7 @@ export function createMemoryHistory() { + if (item == null) { + continue; + } +- if (item.path === pathWithoutHash) { ++ if (item.path === pathWithoutHash && findFocusedRouteKey(item.state) === findFocusedRouteKey(state)) { return i; } } -@@ -77,7 +98,7 @@ export function createMemoryHistory() { +@@ -85,7 +106,7 @@ export function createMemoryHistory() { // Need to keep the hash part of the path if there was no previous history entry // or the previous history entry had the same path @@ -67,13 +69,6 @@ index 474db5e..4d94ed8 100644 const hash = pathWithHash.includes('#') ? '' : location.hash; if (!items.length || items.findIndex(item => item.id === id) < 0) { // There are two scenarios for creating an array with only one history record: -@@ -211,6 +232,5 @@ export function createMemoryHistory() { - return () => window.removeEventListener('popstate', onPopState); - } - }; -- return history; - } - //# sourceMappingURL=createMemoryHistory.js.map diff --git a/node_modules/@react-navigation/native/lib/module/findFocusedRouteKey.js b/node_modules/@react-navigation/native/lib/module/findFocusedRouteKey.js new file mode 100644 index 0000000..b996822 @@ -89,18 +84,18 @@ index 0000000..b996822 +} +//# sourceMappingURL=findFocusedRouteKey.js.map diff --git a/node_modules/@react-navigation/native/lib/module/useLinking.js b/node_modules/@react-navigation/native/lib/module/useLinking.js -index d30009f..0dab822 100644 +index af0cd61..fb06350 100644 --- a/node_modules/@react-navigation/native/lib/module/useLinking.js +++ b/node_modules/@react-navigation/native/lib/module/useLinking.js -@@ -4,6 +4,7 @@ import { findFocusedRoute, getActionFromState as getActionFromStateDefault, getP +@@ -4,6 +4,7 @@ import { CommonActions, findFocusedRoute, getActionFromState as getActionFromSta import isEqual from 'fast-deep-equal'; import * as React from 'react'; import { createMemoryHistory } from "./createMemoryHistory.js"; +import { findFocusedRouteKey } from "./findFocusedRouteKey.js"; import { ServerContext } from "./ServerContext.js"; + /** - * Find the matching navigation state that changed between 2 navigation states -@@ -45,6 +46,43 @@ export const series = cb => { +@@ -114,6 +115,43 @@ export const series = cb => { return callback; }; const linkingHandlers = []; @@ -144,17 +139,17 @@ index d30009f..0dab822 100644 export function useLinking(ref, { enabled = true, config, -@@ -256,6 +294,9 @@ export function useLinking(ref, { - // Otherwise it's likely a change triggered by `popstate` - path !== pendingPath) { - const historyDelta = (focusedState.history ? focusedState.history.length : focusedState.routes.length) - (previousFocusedState.history ? previousFocusedState.history.length : previousFocusedState.routes.length); +@@ -411,6 +449,9 @@ export function useLinking(ref, { + const historyDelta = getHistoryLength(focusedState) - getHistoryLength(previousFocusedState) - ( + // Subtract the delta already applied by the browser to sync only the remaining changes + pendingPopStateDelta ?? 0); + + // The historyDelta and historyDeltaByKeys may differ if the new state has an entry that didn't exist in previous state + const historyDeltaByKeys = getHistoryDeltaByKeys(focusedState, previousFocusedState); if (historyDelta > 0) { // If history length is increased, we should pushState // Note that path might not actually change here, for example, drawer open should pushState -@@ -267,7 +308,8 @@ export function useLinking(ref, { +@@ -422,7 +463,8 @@ export function useLinking(ref, { // If history length is decreased, i.e. entries were removed, we want to go back const nextIndex = history.backIndex({ @@ -164,15 +159,7 @@ index d30009f..0dab822 100644 }); const currentIndex = history.index; try { -@@ -276,11 +318,26 @@ export function useLinking(ref, { - history.get(nextIndex)) { - // An existing entry for this path exists and it's less than current index, go back to that - await history.go(nextIndex - currentIndex); -+ history.replace({ -+ path, -+ state -+ }); - } else { +@@ -435,7 +477,18 @@ export function useLinking(ref, { // We couldn't find an existing entry to go back to, so we'll go back by the delta // This won't be correct if multiple routes were pushed in one go before // Usually this shouldn't happen and this is a fallback for that @@ -192,7 +179,7 @@ index d30009f..0dab822 100644 } // Store the updated state as well as fix the path if incorrect -@@ -293,10 +350,22 @@ export function useLinking(ref, { +@@ -448,10 +501,22 @@ export function useLinking(ref, { } } else { // If history length is unchanged, we want to replaceState diff --git a/patches/react-navigation/@react-navigation+native+7.1.33+002+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+native+7.4.1+002+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+native+7.1.33+002+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+native+7.4.1+002+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+native-stack+7.14.5+002+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+native-stack+7.14.5+002+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+stack+7.8.5+001+edge-drag-gesture.patch b/patches/react-navigation/@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch similarity index 94% rename from patches/react-navigation/@react-navigation+stack+7.8.5+001+edge-drag-gesture.patch rename to patches/react-navigation/@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch index 1bc7bf7ad90a..d05c705d1de3 100644 --- a/patches/react-navigation/@react-navigation+stack+7.8.5+001+edge-drag-gesture.patch +++ b/patches/react-navigation/@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch @@ -67,10 +67,10 @@ index 0000000..9c7b703 +//# sourceMappingURL=edgeDragGestureMonitor.native.js.map \ No newline at end of file diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js -index 0000000..0000000 100644 +index d737bbc..f6c06f0 100644 --- a/node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js +++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js -@@ -6,6 +6,7 @@ import * as React from 'react'; +@@ -6,6 +6,7 @@ import { Animated, Platform, StyleSheet, View } from 'react-native'; import useLatestCallback from 'use-latest-callback'; import { CardAnimationContext } from "../../utils/CardAnimationContext.js"; import { gestureActivationCriteria } from "../../utils/gestureActivationCriteria.js"; @@ -78,8 +78,7 @@ index 0000000..0000000 100644 import { getDistanceForDirection } from "../../utils/getDistanceForDirection.js"; import { getInvertedMultiplier } from "../../utils/getInvertedMultiplier.js"; import { getShadowStyle } from "../../utils/getShadowStyle.js"; -@@ -134,7 +135,9 @@ export function Card({ - if (animated) { +@@ -150,6 +151,8 @@ function Card({ onStartInteraction(); animation(gesture, { ...spec.config, @@ -88,9 +87,8 @@ index 0000000..0000000 100644 velocity, toValue, useNativeDriver, -@@ -143,7 +145,10 @@ export function Card({ - finished - }) => { +@@ -163,6 +166,9 @@ function Card({ + isAnimatingRef.current = false; onEndInteraction(); clearTimeout(pendingGestureCallbackRef.current); + @@ -100,7 +98,7 @@ index 0000000..0000000 100644 onFinish(); } diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardStack.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardStack.js -index 0000000..0000000 100644 +index a3c1efd..326f0c6 100644 --- a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardStack.js +++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardStack.js @@ -5,6 +5,7 @@ import * as React from 'react'; @@ -111,8 +109,7 @@ index 0000000..0000000 100644 import { findLastIndex } from "../../utils/findLastIndex.js"; import { getDistanceForDirection } from "../../utils/getDistanceForDirection.js"; import { getModalRouteKeys } from "../../utils/getModalRoutesKeys.js"; -@@ -261,7 +262,9 @@ export class CardStack extends React.Component { - }; +@@ -261,6 +262,8 @@ export class CardStack extends React.Component { } constructor(props) { super(props); diff --git a/patches/react-navigation/@react-navigation+stack+7.8.5+002+dontDetachScreen.patch b/patches/react-navigation/@react-navigation+stack+7.11.1+002+dontDetachScreen.patch similarity index 85% rename from patches/react-navigation/@react-navigation+stack+7.8.5+002+dontDetachScreen.patch rename to patches/react-navigation/@react-navigation+stack+7.11.1+002+dontDetachScreen.patch index 0b10a2777532..eff88fe489d0 100644 --- a/patches/react-navigation/@react-navigation+stack+7.8.5+002+dontDetachScreen.patch +++ b/patches/react-navigation/@react-navigation+stack+7.11.1+002+dontDetachScreen.patch @@ -1,8 +1,20 @@ +diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js +index 44c8f10..93673f8 100644 +--- a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js ++++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js +@@ -27,6 +27,7 @@ export const CardA11yWrapper = /*#__PURE__*/React.forwardRef(({ + overflow: active ? undefined : 'hidden', + // We use visibility on web + display: Platform.OS !== 'web' && isHidden ? 'none' : 'flex', ++ zIndex: Platform.OS === 'web' ? 'auto' : undefined, + // Hide unfocused screens when animation isn't enabled + // This is also necessary for a11y on web + // @ts-expect-error visibility is only available on web diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardStack.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardStack.js -index 0000000..0000000 100644 +index 326f0c6..381ca43 100644 --- a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardStack.js +++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardStack.js -@@ -427,6 +430,7 @@ export class CardStack extends React.Component { +@@ -430,10 +430,11 @@ export class CardStack extends React.Component { const isNextScreenTransparent = scenes[index + 1]?.descriptor.options.presentation === 'transparentModal'; const detachCurrentScreen = scenes[index + 1]?.descriptor.options.detachPreviousScreen !== false; const activityState = isPreloaded ? STATE_INACTIVE : activeStates[index]; @@ -10,16 +22,12 @@ index 0000000..0000000 100644 return /*#__PURE__*/_jsx(MaybeScreen, { style: [StyleSheet.absoluteFill], enabled: detachInactiveScreens, -@@ -430,7 +434,7 @@ export class CardStack extends React.Component { - return /*#__PURE__*/_jsx(MaybeScreen, { - style: [StyleSheet.absoluteFill], - enabled: detachInactiveScreens, - active: activityState, + active: shouldNotDetachScreen ? STATE_TRANSITIONING_OR_BELOW_TOP : activityState, freezeOnBlur: freezeOnBlur, shouldFreeze: activityState === STATE_INACTIVE && !isPreloaded, homeIndicatorHidden: autoHideHomeIndicator, -@@ -465,7 +469,7 @@ export class CardStack extends React.Component { +@@ -468,7 +469,7 @@ export class CardStack extends React.Component { onTransitionStart: onTransitionStart, onTransitionEnd: onTransitionEnd, isNextScreenTransparent: isNextScreenTransparent, @@ -28,15 +36,3 @@ index 0000000..0000000 100644 preloaded: isPreloaded }) }, route.key); -diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js -index 0000000..0000000 100644 ---- a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js -+++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js -@@ -27,6 +27,7 @@ export const CardA11yWrapper = /*#__PURE__*/React.forwardRef(({ - overflow: active ? undefined : 'hidden', - // We use visibility on web - display: Platform.OS !== 'web' && isHidden ? 'none' : 'flex', -+ zIndex: Platform.OS === 'web' ? 'auto' : undefined, - // Hide unfocused screens when animation isn't enabled - // This is also necessary for a11y on web - // @ts-expect-error visibility is only available on web diff --git a/patches/react-navigation/@react-navigation+stack+7.8.5+004+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+stack+7.8.5+004+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/details.md b/patches/react-navigation/details.md index 7e5f8c7caa01..eede2d2ea8dd 100644 --- a/patches/react-navigation/details.md +++ b/patches/react-navigation/details.md @@ -1,14 +1,14 @@ # `@react-navigation` patches ### @react-navigation+package-name+7+fix-failing-jest-by-disabling-esmodule.patch -#### [@react-navigation+bottom-tabs+7.15.5+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+bottom-tabs+7.15.5+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+core+7.21.12+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+core+7.21.12+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+elements+2.9.14+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+elements+2.9.14+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+material-top-tabs+7.4.19+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+material-top-tabs+7.4.19+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+native-stack+7.14.5+002+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+native-stack+7.14.5+002+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+native+7.1.33+002+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+native+7.1.33+002+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+core+7.22.1+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+core+7.22.1+001+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+native+7.4.1+002+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+native+7.4.1+002+fix-failing-jest-by-disabling-esmodule.patch) #### [@react-navigation+routers+7.6.4+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+routers+7.6.4+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+stack+7.8.5+004+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+stack+7.8.5+004+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch) - Reason: Necessary to run Jest with the obligatory `--experimental-vm-modules` flag. Currently we transpile all the code to `commonjs`, but Jest looks up to individual `package.jsons` to see whether the package is `commonjs` or `ESModule`. That causes a conflict, which can be solved by removing `{"type":"module"}` from `lib/module/package.json`. This might be an issue with Jest, but it would require much more investigation. More: https://github.com/react-navigation/react-navigation/issues/12637 - Upstream PR/issue: https://github.com/react-navigation/react-navigation/issues/12637 @@ -16,54 +16,56 @@ - PR Introducing Patch: [#64155](https://github.com/Expensify/App/pull/64155) - PR Updating Patch: N/A -### [@react-navigation+core+7.21.12+002+platform-navigation-stack-types.patch](@react-navigation+core+7.21.12+002+platform-navigation-stack-types.patch) +### [@react-navigation+core+7.22.1+002+platform-navigation-stack-types.patch](@react-navigation+core+7.22.1+002+platform-navigation-stack-types.patch) - Reason: Enables passing custom `ScreenOptions` and adjusts typing to have everything fully type-checked and make sure only the proper (common) platform-specific options are passed - Upstream PR/issue: N/A - E/App issue: [#29948](https://github.com/Expensify/App/issues/29948) - PR Introducing Patch: [#37891](https://github.com/Expensify/App/pull/37891) -- PR Updating Patch: [#64155](https://github.com/Expensify/App/pull/64155), [#98097](https://github.com/Expensify/App/pull/98097) +- PR Updating Patch: [#64155](https://github.com/Expensify/App/pull/64155), [#98097](https://github.com/Expensify/App/pull/98097), [#101715](https://github.com/Expensify/App/issues/101715) +- Note: Re-ported onto 7.22.1. Every hunk applied without changes. +- Note: Core 7.22.0 made `useNavigationBuilder` return a `render` callback and deprecated the `NavigationContent` output it returned before. Our only builder call site, `createPlatformStackNavigatorComponent` (shared by `createRootStackNavigator`, `createRightModalNavigator`, `createSplitNavigator` and `createSearchFullscreenNavigator`), still uses `NavigationContent`, and the `convertCustomScreenOptions` argument this patch adds has no upstream equivalent, so move to `render` and re-check this patch together when `NavigationContent` eventually disappears. -### [@react-navigation+native+7.1.33+001+initial.patch](@react-navigation+native+7.1.33+001+initial.patch) +### [@react-navigation+core+7.22.1+003+root-state-not-undefined.patch](@react-navigation+core+7.22.1+003+root-state-not-undefined.patch) + +- Reason: Keep `NavigationContainerRef.getRootState()` typed as `NavigationState` instead of `NavigationState | undefined`. Types only, no runtime change: the implementation already returned `undefined` before the container ref mounted in 7.21.12, the type just did not admit it. Around 30 call sites (including `navigationRef.current?.getRootState().routes` in the navigation tests) hand the result straight to helpers that require a state object, and they all run behind the app's readiness gate (`NavigationRoot`'s `onReady`, `navigationRef.isReady()`), so guarding each one is a separate refactor rather than part of an upgrade. +- Upstream PR/issue: https://github.com/react-navigation/react-navigation/commit/4e6eaaac6fad57d09ab5a828484b8ffeb4cfc6e5 (core 7.21.13, "fix return type of getRootState") +- E/App issue: [#101715](https://github.com/Expensify/App/issues/101715) +- PR Introducing Patch: N/A +- Note: Drop this patch once call sites handle the missing state explicitly (a guarded `getRootState()` helper in `src/libs/Navigation` would cover most of them). Until then, calling `getRootState()` before the container mounts logs react-navigation's `NOT_INITIALIZED_ERROR` and returns `undefined` at runtime while the type claims otherwise - same as before the upgrade. + +### [@react-navigation+native+7.4.1+001+initial.patch](@react-navigation+native+7.4.1+001+initial.patch) - Reason: Allows us to use some more advanced navigation actions without messing up the browser history - Upstream PR/issue: https://github.com/react-navigation/react-navigation/pull/12751 (`route.history` + `pushParams`, added upstream for this use case); originating issue https://github.com/react-navigation/react-navigation/issues/12460. On the v8 upgrade, evaluate adopting `pushParams` to shrink this patch. - E/App issue: [#21356](https://github.com/Expensify/App/issues/21356) - PR Introducing Patch: [#24165](https://github.com/Expensify/App/pull/24165) -- PR Updating Patch: [#32087](https://github.com/Expensify/App/pull/32087) [#42465](https://github.com/Expensify/App/pull/42465) [#64155](https://github.com/Expensify/App/pull/64155) +- PR Updating Patch: [#32087](https://github.com/Expensify/App/pull/32087) [#42465](https://github.com/Expensify/App/pull/42465) [#64155](https://github.com/Expensify/App/pull/64155) [#101715](https://github.com/Expensify/App/issues/101715) +- Note: Re-ported onto 7.4.1. `createMemoryHistory` and `useLinking` were refactored upstream (`getPathWithoutHash`, `getHistoryLength`, `pendingPopStateDelta`, `isPoppingLastEntry`), so the hunks were re-anchored instead of applied verbatim: `backIndex` keeps upstream's hash handling and adds the focused-route-key match, and `useLinking` keeps upstream's `pendingPopStateDelta` guard and `getHistoryLength` delta while re-adding `historyDeltaByKeys`/`getStaleHistoryDiff`. Two parts of the old patch became redundant and were dropped: the `findFocusedRouteKey` helper file now matches upstream's own module, and the extra `history.replace` right after `history.go(nextIndex - currentIndex)` duplicated the replace that upstream already runs at the end of the same `try` block. -### [@react-navigation+stack+7.8.5+001+edge-drag-gesture.patch](@react-navigation+stack+7.8.5+001+edge-drag-gesture.patch) +### [@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch](@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch) - Reason: Adds `edgeDragGestureMonitor` implementation - Upstream PR/issue: N/A - E/App issue: [#15849](https://github.com/Expensify/App/issues/15849) - PR Introducing Patch: [#18402](https://github.com/Expensify/App/pull/18402) -- PR Updating Patch: [#22678](https://github.com/Expensify/App/pull/22678) [#22437](https://github.com/Expensify/App/pull/22437) [#64155](https://github.com/Expensify/App/pull/64155) +- PR Updating Patch: [#22678](https://github.com/Expensify/App/pull/22678) [#22437](https://github.com/Expensify/App/pull/22437) [#64155](https://github.com/Expensify/App/pull/64155) [#101715](https://github.com/Expensify/App/issues/101715) +- Note: Re-ported onto 7.11.1. The added and removed lines are unchanged; only the surrounding context moved, because 7.10.x wrapped the gesture animation in `animationIdRef`/`isAnimatingRef` guards. `resetExpectingTouchendWithDelay()` still runs after those guards, so a stale animation callback that returns early no longer resets the monitor. -### [@react-navigation+stack+7.8.5+002+dontDetachScreen.patch](@react-navigation+stack+7.8.5+002+dontDetachScreen.patch) +### [@react-navigation+stack+7.11.1+002+dontDetachScreen.patch](@react-navigation+stack+7.11.1+002+dontDetachScreen.patch) - Reason: Prevents the second screen in the stack from being detached too early. Additionally, setting `zIndex: Platform.OS === 'web' ? 'auto' : undefined` helps avoid issues in Safari where the home screen might be hidden due to `overflow: hidden`. - Upstream PR/issue: N/A - E/App issue: [#22372](https://github.com/Expensify/App/issues/22372) - PR Introducing Patch: [#22437](https://github.com/Expensify/App/pull/22437) -- PR Updating Patch: [#33280](https://github.com/Expensify/App/pull/33280) [#37421](https://github.com/Expensify/App/pull/37421) [#49539](https://github.com/Expensify/App/pull/49539) [#64155](https://github.com/Expensify/App/pull/64155) [#65119](https://github.com/Expensify/App/issues/65119) +- PR Updating Patch: [#33280](https://github.com/Expensify/App/pull/33280) [#37421](https://github.com/Expensify/App/pull/37421) [#49539](https://github.com/Expensify/App/pull/49539) [#64155](https://github.com/Expensify/App/pull/64155) [#65119](https://github.com/Expensify/App/issues/65119) [#101715](https://github.com/Expensify/App/issues/101715) - Note: Not fully covered by the public `detachPreviousScreen` option (this also forces `activityState`). v8 replaces `detachInactiveScreens`/`detachPreviousScreen`/`freezeOnBlur` with a single `inactiveBehavior` option — re-evaluate this patch then. +- Note: Re-ported onto 7.11.1 unchanged. `STATE_TRANSITIONING_OR_BELOW_TOP` is now a module-level constant upstream, so the patch no longer declares it, and `CardA11yWrapper.js` is byte-for-byte identical to 7.8.5, so the `zIndex` hunk still applies (the 7.11.x `overflow` handling change did not touch this file). -### [@react-navigation+native+7.1.33+003+increase-history-go-popstate-fallback-timeout.patch](@react-navigation+native+7.1.33+003+increase-history-go-popstate-fallback-timeout.patch) +### Removed patches -- Reason: +- `@react-navigation+native+7.1.33+003+increase-history-go-popstate-fallback-timeout.patch` was dropped: upstream raised the `createMemoryHistory.go()` fallback timeout from 100ms to 1000ms in 7.3.18 (https://github.com/react-navigation/react-navigation/pull/13217), with the same Firefox rationale as our patch. Original context: [#94571](https://github.com/Expensify/App/issues/94571) / [#95980](https://github.com/Expensify/App/pull/95980), upstream issue https://github.com/react-navigation/react-navigation/issues/11145. - ``` - createMemoryHistory.go() waits for the browser's popstate after history.go(n) but gives up - after a 100ms fallback timer and deletes its pending record of the traversal. Firefox can - take 500ms+ to deliver the popstate when the main thread is busy (e.g. rendering the newly - created group chat report). Once the record is deleted, the late popstate is misclassified - by listen() as a user-initiated back/forward navigation and react-navigation resets state - to the previous route. Raising the timeout to 1000ms keeps the pending record alive until - the traversal actually settles. Fixes group/DM creation not opening the new report on - Firefox (#94571). - ``` + One behaviour difference is worth a Firefox regression check on #94571: when the timeout does fire, upstream removes its own `popstate` listener and rejects the `go()` promise if the browser hasn't landed on the expected entry (`window.history.state?.id !== targetId`), whereas it used to resolve. That check came from 7.3.8 (https://github.com/react-navigation/react-navigation/commit/788d7c565554d85fc7d3c3b9d1a7829e1847b8da), not from the timeout change. Rejecting skips the trailing `history.replace`, which upstream documents as deliberate: the entry we are on may not be the one we intended to land on. Both variants still deliver a late `popstate` to external listeners, so this only changes what happens to the history record in the >1s case. -- Upstream PR/issue: https://github.com/react-navigation/react-navigation/issues/11145 -- E/App issue: [#94571](https://github.com/Expensify/App/issues/94571) -- PR Introducing Patch: [#95980](https://github.com/Expensify/App/pull/95980) + `tests/unit/Navigation/createMemoryHistoryTest.ts` covered the old contract and now asserts the new one: a timed-out traversal rejects, and the in-time case points `window.history.state` at the target entry first, the way a real traversal does. From e0f8a19000bc0f11ec83f4f06a231f053526baa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Obudzi=C5=84ski?= Date: Thu, 24 Sep 2026 12:21:16 +0200 Subject: [PATCH 2/7] chore(navigation): keep NavigationContent usage lint-clean after core 7.22 --- .../createPlatformStackNavigatorComponent/index.native.tsx | 1 + .../createPlatformStackNavigatorComponent/index.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx index 5ef88b1e7cc3..97c108e1e221 100644 --- a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx @@ -54,6 +54,7 @@ function PlatformNavigatorImpl, diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx index d18614af86c0..c474eeeafea1 100644 --- a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx @@ -55,6 +55,7 @@ function PlatformNavigatorImpl, From 33347dc76c930a6590fd14ef63aa9a4d69e84db8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Obudzi=C5=84ski?= Date: Thu, 24 Sep 2026 12:21:17 +0200 Subject: [PATCH 3/7] test: match memory history timeout test to native 7.4 rejection behaviour --- .../unit/Navigation/createMemoryHistoryTest.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/unit/Navigation/createMemoryHistoryTest.ts b/tests/unit/Navigation/createMemoryHistoryTest.ts index 2d661b1ca11b..88e0cb4df5b5 100644 --- a/tests/unit/Navigation/createMemoryHistoryTest.ts +++ b/tests/unit/Navigation/createMemoryHistoryTest.ts @@ -5,6 +5,8 @@ type MemoryHistory = { push: (options: {path: string; state: NavigationState}) => void; go: (distance: number) => Promise | undefined; listen: (listener: () => void) => () => void; + // Exposed by our `initial` patch on @react-navigation/native + items: Array<{path: string; state: NavigationState; id: string}>; }; const { @@ -47,6 +49,10 @@ describe('createMemoryHistory', () => { const stopListening = history.listen(listener); const navigation = history.go(-1); + // `history.go` is mocked, so nothing moves the browser entry on its own. Point the browser + // state at the entry we asked to land on, the way a real traversal would, otherwise the + // library treats the traversal as failed (see `targetId` in createMemoryHistory). + window.history.replaceState({id: history.items.at(0)?.id}, '', '/r/1'); jest.advanceTimersByTime(900); window.dispatchEvent(new PopStateEvent('popstate')); @@ -61,17 +67,23 @@ describe('createMemoryHistory', () => { const listener = jest.fn(); const stopListening = history.listen(listener); const resolved = jest.fn(); + const rejected = jest.fn(); const navigation = history.go(-1); - navigation?.then(resolved); + navigation?.then(resolved, rejected); jest.advanceTimersByTime(999); await Promise.resolve(); expect(resolved).not.toHaveBeenCalled(); + expect(rejected).not.toHaveBeenCalled(); + // The traversal never happened, so the library reports it as a failed navigation instead of + // pretending it succeeded. That is intentional: resolving here would let callers write history + // for an entry the browser never landed on. jest.advanceTimersByTime(1); - await expect(navigation).resolves.toBeUndefined(); - expect(resolved).toHaveBeenCalledTimes(1); + await expect(navigation).rejects.toThrow('History was changed during navigation.'); + expect(resolved).not.toHaveBeenCalled(); + expect(rejected).toHaveBeenCalledTimes(1); window.dispatchEvent(new PopStateEvent('popstate')); expect(listener).toHaveBeenCalledTimes(1); From e09ea1f9ad94d1c243d0dcf112ec96acd8235a88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Obudzi=C5=84ski?= Date: Thu, 1 Oct 2026 09:23:35 +0200 Subject: [PATCH 4/7] chore(deps): bump react-navigation stack to 7.11.2 and siblings, drop stack+005 --- package-lock.json | 46 +++++++++--------- package.json | 8 ++-- ...-failing-jest-by-disabling-esmodule.patch} | 0 ...-failing-jest-by-disabling-esmodule.patch} | 0 ...-failing-jest-by-disabling-esmodule.patch} | 0 ...-failing-jest-by-disabling-esmodule.patch} | 0 ...+stack+7.11.2+001+edge-drag-gesture.patch} | 0 ...n+stack+7.11.2+002+dontDetachScreen.patch} | 6 +-- ...-failing-jest-by-disabling-esmodule.patch} | 0 ...5+005+clip-inactive-card-inside-card.patch | 48 ------------------- patches/react-navigation/details.md | 29 ++++------- 11 files changed, 40 insertions(+), 97 deletions(-) rename patches/react-navigation/{@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+bottom-tabs+7.19.2+001+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+elements+2.9.43+001+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+material-top-tabs+7.7.2+001+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+native-stack+7.19.2+002+fix-failing-jest-by-disabling-esmodule.patch} (100%) rename patches/react-navigation/{@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch => @react-navigation+stack+7.11.2+001+edge-drag-gesture.patch} (100%) rename patches/react-navigation/{@react-navigation+stack+7.11.1+002+dontDetachScreen.patch => @react-navigation+stack+7.11.2+002+dontDetachScreen.patch} (94%) rename patches/react-navigation/{@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch => @react-navigation+stack+7.11.2+004+fix-failing-jest-by-disabling-esmodule.patch} (100%) delete mode 100644 patches/react-navigation/@react-navigation+stack+7.8.5+005+clip-inactive-card-inside-card.patch diff --git a/package-lock.json b/package-lock.json index 15f4dbb9cda3..a3565f8084fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,12 +45,12 @@ "@react-native-firebase/app": "^22.2.1", "@react-native-google-signin/google-signin": "^10.0.1", "@react-native-picker/picker": "2.11.3", - "@react-navigation/bottom-tabs": "7.19.1", + "@react-navigation/bottom-tabs": "7.19.2", "@react-navigation/core": "7.22.1", - "@react-navigation/material-top-tabs": "7.7.1", + "@react-navigation/material-top-tabs": "7.7.2", "@react-navigation/native": "7.4.1", - "@react-navigation/native-stack": "7.19.1", - "@react-navigation/stack": "7.11.1", + "@react-navigation/native-stack": "7.19.2", + "@react-navigation/stack": "7.11.2", "@react-ng/bounds-observer": "^0.2.1", "@rnmapbox/maps": "10.3.2", "@sbaiahmed1/react-native-biometrics": "0.15.0", @@ -15110,12 +15110,12 @@ } }, "node_modules/@react-navigation/bottom-tabs": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.19.1.tgz", - "integrity": "sha512-LE4CFDkwVQ1H+0CMTdanFJkXlgy4xaYoZMFrwS65iyMPDGfNBnGrqrNcn7nCiYWbodG2bYSbFmXlEyRE+Qh2xw==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.19.2.tgz", + "integrity": "sha512-sXUS7cySIj2cLwD1trdTnbqAm3TWYiF6L9i0VNES2+4ssUyBDgkIdmm7uxjhJ8ZSjzpWj8uSfLHkkSx0j0MpmA==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.42", + "@react-navigation/elements": "^2.9.43", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0" }, @@ -15167,9 +15167,9 @@ } }, "node_modules/@react-navigation/elements": { - "version": "2.9.42", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.42.tgz", - "integrity": "sha512-3U1ZmXXoSrJEex+f8I4sRAzVL0OwLpgTEzORgjQGExWLjGrvn7QofK8cjNgBQHjRiTTQXAl8QMZvrdejg7yJAA==", + "version": "2.9.43", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.43.tgz", + "integrity": "sha512-XOYpRfgT9RPV2VIoXeEfTVdmXwEPpHwkezDkZVsVNEN6rTWDo07BPyLmWsvXooczyMf3jHe9AB2p/U9lJArtiQ==", "license": "MIT", "dependencies": { "color": "^4.2.3", @@ -15190,12 +15190,12 @@ } }, "node_modules/@react-navigation/material-top-tabs": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@react-navigation/material-top-tabs/-/material-top-tabs-7.7.1.tgz", - "integrity": "sha512-1oH+mpnxzfsQ7Zvok+f+7uynaJzHQ/O+PL8LC4gUXK345WsaeIaXLRqs+eRTyyzNU7II8IL8s3MedQzZJmW3BQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/@react-navigation/material-top-tabs/-/material-top-tabs-7.7.2.tgz", + "integrity": "sha512-8BhfaB4a2VWRnuzu9hwKomICtxT/O03q8/S+f210Dx1KZxj4KdynSueSTHul5eH+3GaYodmpRffMXinHDG2B2A==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.42", + "@react-navigation/elements": "^2.9.43", "color": "^4.2.3", "react-native-tab-view": "^4.3.2" }, @@ -15226,12 +15226,12 @@ } }, "node_modules/@react-navigation/native-stack": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.19.1.tgz", - "integrity": "sha512-YB3DLKXe1CLZAtJWgH/F3M5fWRALm1VbgVm91FppGYqPYfVZrD7mJaINaif2RIC4sZW7BziCE57IZ68vlINdkg==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.19.2.tgz", + "integrity": "sha512-D6hmtgpMZz1x8R0PLbfqqKh5ajEkb13DguE7X/MNNKYL4riY4zD3TrjbcesUC2EZklpQ/EoJ6h6HAhMNfCCsoQ==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.42", + "@react-navigation/elements": "^2.9.43", "color": "^4.2.3", "sf-symbols-typescript": "^2.1.0", "warn-once": "^0.1.1" @@ -15254,12 +15254,12 @@ } }, "node_modules/@react-navigation/stack": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-7.11.1.tgz", - "integrity": "sha512-OoqgwCGtnb7mgweFncMV/KBgebATJG5Bq7LN2E68ZDDJtCeDcHbVMJS3KOAkXwkuB+1LhDds4eGi7KBxe3YqAg==", + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-7.11.2.tgz", + "integrity": "sha512-uz5RtTCTmcSsH1Lwas20wE8puW/DCTuKjQ/UBKk2obp+dSPreTCcJZG2W6sTIaz6WBp1zcUZWsajhDMfH6+CvA==", "license": "MIT", "dependencies": { - "@react-navigation/elements": "^2.9.42", + "@react-navigation/elements": "^2.9.43", "color": "^4.2.3", "use-latest-callback": "^0.2.4" }, diff --git a/package.json b/package.json index 75338d10e1ba..486a39f4fb88 100644 --- a/package.json +++ b/package.json @@ -121,12 +121,12 @@ "@react-native-firebase/app": "^22.2.1", "@react-native-google-signin/google-signin": "^10.0.1", "@react-native-picker/picker": "2.11.3", - "@react-navigation/bottom-tabs": "7.19.1", + "@react-navigation/bottom-tabs": "7.19.2", "@react-navigation/core": "7.22.1", - "@react-navigation/material-top-tabs": "7.7.1", + "@react-navigation/material-top-tabs": "7.7.2", "@react-navigation/native": "7.4.1", - "@react-navigation/native-stack": "7.19.1", - "@react-navigation/stack": "7.11.1", + "@react-navigation/native-stack": "7.19.2", + "@react-navigation/stack": "7.11.2", "@react-ng/bounds-observer": "^0.2.1", "@rnmapbox/maps": "10.3.2", "@sbaiahmed1/react-native-biometrics": "0.15.0", diff --git a/patches/react-navigation/@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+bottom-tabs+7.19.2+001+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+bottom-tabs+7.19.2+001+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+elements+2.9.43+001+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+elements+2.9.43+001+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+material-top-tabs+7.7.2+001+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+material-top-tabs+7.7.2+001+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+native-stack+7.19.2+002+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+native-stack+7.19.2+002+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch b/patches/react-navigation/@react-navigation+stack+7.11.2+001+edge-drag-gesture.patch similarity index 100% rename from patches/react-navigation/@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch rename to patches/react-navigation/@react-navigation+stack+7.11.2+001+edge-drag-gesture.patch diff --git a/patches/react-navigation/@react-navigation+stack+7.11.1+002+dontDetachScreen.patch b/patches/react-navigation/@react-navigation+stack+7.11.2+002+dontDetachScreen.patch similarity index 94% rename from patches/react-navigation/@react-navigation+stack+7.11.1+002+dontDetachScreen.patch rename to patches/react-navigation/@react-navigation+stack+7.11.2+002+dontDetachScreen.patch index eff88fe489d0..d48b0d12b11c 100644 --- a/patches/react-navigation/@react-navigation+stack+7.11.1+002+dontDetachScreen.patch +++ b/patches/react-navigation/@react-navigation+stack+7.11.2+002+dontDetachScreen.patch @@ -1,9 +1,9 @@ diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js -index 44c8f10..93673f8 100644 +index 7750f21..d95ceb0 100644 --- a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js +++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js -@@ -27,6 +27,7 @@ export const CardA11yWrapper = /*#__PURE__*/React.forwardRef(({ - overflow: active ? undefined : 'hidden', +@@ -23,6 +23,7 @@ export const CardA11yWrapper = /*#__PURE__*/React.forwardRef(({ + style: [StyleSheet.absoluteFill, { // We use visibility on web display: Platform.OS !== 'web' && isHidden ? 'none' : 'flex', + zIndex: Platform.OS === 'web' ? 'auto' : undefined, diff --git a/patches/react-navigation/@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch b/patches/react-navigation/@react-navigation+stack+7.11.2+004+fix-failing-jest-by-disabling-esmodule.patch similarity index 100% rename from patches/react-navigation/@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch rename to patches/react-navigation/@react-navigation+stack+7.11.2+004+fix-failing-jest-by-disabling-esmodule.patch diff --git a/patches/react-navigation/@react-navigation+stack+7.8.5+005+clip-inactive-card-inside-card.patch b/patches/react-navigation/@react-navigation+stack+7.8.5+005+clip-inactive-card-inside-card.patch deleted file mode 100644 index 244e9ecc8a13..000000000000 --- a/patches/react-navigation/@react-navigation+stack+7.8.5+005+clip-inactive-card-inside-card.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js ---- a/node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js -+++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/Card.js -@@ -48,6 +48,7 @@ function Card({ - gestureVelocityImpact = GESTURE_VELOCITY_IMPACT, - overlay = defaultOverlay, - animated, -+ active, - interpolationIndex, - opening, - closing, -@@ -375,7 +376,11 @@ function Card({ - children: /*#__PURE__*/_jsxs(Animated.View, { - pointerEvents: "box-none", - needsOffscreenAlphaCompositing: hasOpacityStyle(cardStyle), -- style: [styles.container, cardStyle], -+ style: [styles.container, { -+ // Avoid unfocused larger pages increasing scroll area -+ // e.g. when a smaller screen is pushed over a larger one on web -+ overflow: active ? undefined : 'hidden' -+ }, cardStyle], - children: [shadowEnabled && shadowStyle && !isTransparent ? /*#__PURE__*/_jsx(Animated.View, { - pointerEvents: "none", - style: [styles.shadow, gestureDirection === 'horizontal' ? [styles.shadowHorizontal, styles.shadowStart] : gestureDirection === 'horizontal-inverted' ? [styles.shadowHorizontal, styles.shadowEnd] : gestureDirection === 'vertical' ? [styles.shadowVertical, styles.shadowTop] : [styles.shadowVertical, styles.shadowBottom], { -diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js ---- a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js -+++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardA11yWrapper.js -@@ -22,9 +22,6 @@ export const CardA11yWrapper = /*#__PURE__*/React.forwardRef(({ - "aria-hidden": !focused, - pointerEvents: (animated ? inert : !focused) ? 'none' : 'box-none', - style: [StyleSheet.absoluteFill, { -- // This is necessary to avoid unfocused larger pages increasing scroll area -- // The issue can be seen on the web when a smaller screen is pushed over a larger one -- overflow: active ? undefined : 'hidden', - // We use visibility on web - display: Platform.OS !== 'web' && isHidden ? 'none' : 'flex', - zIndex: Platform.OS === 'web' ? 'auto' : undefined, -diff --git a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardContainer.js b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardContainer.js ---- a/node_modules/@react-navigation/stack/lib/module/views/Stack/CardContainer.js -+++ b/node_modules/@react-navigation/stack/lib/module/views/Stack/CardContainer.js -@@ -198,6 +198,7 @@ function CardContainerInner({ - detachCurrentScreen: detachCurrentScreen, - children: /*#__PURE__*/_jsx(Card, { - animated: animated, -+ active: active, - interpolationIndex: interpolationIndex, - gestureDirection: gestureDirection, - layout: layout, diff --git a/patches/react-navigation/details.md b/patches/react-navigation/details.md index 486ab461071f..69460598a0fe 100644 --- a/patches/react-navigation/details.md +++ b/patches/react-navigation/details.md @@ -1,14 +1,14 @@ # `@react-navigation` patches ### @react-navigation+package-name+7+fix-failing-jest-by-disabling-esmodule.patch -#### [@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+bottom-tabs+7.19.1+001+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+bottom-tabs+7.19.2+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+bottom-tabs+7.19.2+001+fix-failing-jest-by-disabling-esmodule.patch) #### [@react-navigation+core+7.22.1+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+core+7.22.1+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+elements+2.9.42+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+material-top-tabs+7.7.1+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+native-stack+7.19.1+002+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+elements+2.9.43+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+elements+2.9.43+001+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+material-top-tabs+7.7.2+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+material-top-tabs+7.7.2+001+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+native-stack+7.19.2+002+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+native-stack+7.19.2+002+fix-failing-jest-by-disabling-esmodule.patch) #### [@react-navigation+native+7.4.1+002+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+native+7.4.1+002+fix-failing-jest-by-disabling-esmodule.patch) #### [@react-navigation+routers+7.6.4+001+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+routers+7.6.4+001+fix-failing-jest-by-disabling-esmodule.patch) -#### [@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+stack+7.11.1+004+fix-failing-jest-by-disabling-esmodule.patch) +#### [@react-navigation+stack+7.11.2+004+fix-failing-jest-by-disabling-esmodule.patch](@react-navigation+stack+7.11.2+004+fix-failing-jest-by-disabling-esmodule.patch) - Reason: Necessary to run Jest with the obligatory `--experimental-vm-modules` flag. Currently we transpile all the code to `commonjs`, but Jest looks up to individual `package.jsons` to see whether the package is `commonjs` or `ESModule`. That causes a conflict, which can be solved by removing `{"type":"module"}` from `lib/module/package.json`. This might be an issue with Jest, but it would require much more investigation. More: https://github.com/react-navigation/react-navigation/issues/12637 - Upstream PR/issue: https://github.com/react-navigation/react-navigation/issues/12637 @@ -43,16 +43,16 @@ - PR Updating Patch: [#32087](https://github.com/Expensify/App/pull/32087) [#42465](https://github.com/Expensify/App/pull/42465) [#64155](https://github.com/Expensify/App/pull/64155) [#101715](https://github.com/Expensify/App/issues/101715) - Note: Re-ported onto 7.4.1. `createMemoryHistory` and `useLinking` were refactored upstream (`getPathWithoutHash`, `getHistoryLength`, `pendingPopStateDelta`, `isPoppingLastEntry`), so the hunks were re-anchored instead of applied verbatim: `backIndex` keeps upstream's hash handling and adds the focused-route-key match, and `useLinking` keeps upstream's `pendingPopStateDelta` guard and `getHistoryLength` delta while re-adding `historyDeltaByKeys`/`getStaleHistoryDiff`. Two parts of the old patch became redundant and were dropped: the `findFocusedRouteKey` helper file now matches upstream's own module, and the extra `history.replace` right after `history.go(nextIndex - currentIndex)` duplicated the replace that upstream already runs at the end of the same `try` block. -### [@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch](@react-navigation+stack+7.11.1+001+edge-drag-gesture.patch) +### [@react-navigation+stack+7.11.2+001+edge-drag-gesture.patch](@react-navigation+stack+7.11.2+001+edge-drag-gesture.patch) - Reason: Adds `edgeDragGestureMonitor` implementation - Upstream PR/issue: N/A - E/App issue: [#15849](https://github.com/Expensify/App/issues/15849) - PR Introducing Patch: [#18402](https://github.com/Expensify/App/pull/18402) - PR Updating Patch: [#22678](https://github.com/Expensify/App/pull/22678) [#22437](https://github.com/Expensify/App/pull/22437) [#64155](https://github.com/Expensify/App/pull/64155) [#101715](https://github.com/Expensify/App/issues/101715) -- Note: Re-ported onto 7.11.1. The added and removed lines are unchanged; only the surrounding context moved, because 7.10.x wrapped the gesture animation in `animationIdRef`/`isAnimatingRef` guards. `resetExpectingTouchendWithDelay()` still runs after those guards, so a stale animation callback that returns early no longer resets the monitor. +- Note: Re-ported onto 7.11.2. The added and removed lines are unchanged; only the surrounding context moved, because 7.10.x wrapped the gesture animation in `animationIdRef`/`isAnimatingRef` guards. 7.11.2 did not touch `Card.js` or `CardStack.js`, so the patch body is identical to the 7.11.1 one. `resetExpectingTouchendWithDelay()` still runs after those guards, so a stale animation callback that returns early no longer resets the monitor. -### [@react-navigation+stack+7.11.1+002+dontDetachScreen.patch](@react-navigation+stack+7.11.1+002+dontDetachScreen.patch) +### [@react-navigation+stack+7.11.2+002+dontDetachScreen.patch](@react-navigation+stack+7.11.2+002+dontDetachScreen.patch) - Reason: Prevents the second screen in the stack from being detached too early. Additionally, setting `zIndex: Platform.OS === 'web' ? 'auto' : undefined` helps avoid issues in Safari where the home screen might be hidden due to `overflow: hidden`. - Upstream PR/issue: N/A @@ -60,7 +60,7 @@ - PR Introducing Patch: [#22437](https://github.com/Expensify/App/pull/22437) - PR Updating Patch: [#33280](https://github.com/Expensify/App/pull/33280) [#37421](https://github.com/Expensify/App/pull/37421) [#49539](https://github.com/Expensify/App/pull/49539) [#64155](https://github.com/Expensify/App/pull/64155) [#65119](https://github.com/Expensify/App/issues/65119) [#101715](https://github.com/Expensify/App/issues/101715) - Note: Not fully covered by the public `detachPreviousScreen` option (this also forces `activityState`). v8 replaces `detachInactiveScreens`/`detachPreviousScreen`/`freezeOnBlur` with a single `inactiveBehavior` option — re-evaluate this patch then. -- Note: Re-ported onto 7.11.1 unchanged. `STATE_TRANSITIONING_OR_BELOW_TOP` is now a module-level constant upstream, so the patch no longer declares it, and `CardA11yWrapper.js` is byte-for-byte identical to 7.8.5, so the `zIndex` hunk still applies (the 7.11.x `overflow` handling change did not touch this file). +- Note: Re-ported onto 7.11.2. `STATE_TRANSITIONING_OR_BELOW_TOP` is now a module-level constant upstream, so the patch no longer declares it. 7.11.2 (https://github.com/react-navigation/react-navigation/pull/13255) removed the `overflow: active ? undefined : 'hidden'` line from `CardA11yWrapper`, so the `zIndex` hunk was re-anchored on the line above it. The added lines are unchanged. With that `overflow: hidden` gone from `CardA11yWrapper`, the Safari case the `zIndex` part was added for may no longer happen. That has not been verified, so the `zIndex` part stays. ### Removed patches @@ -70,13 +70,4 @@ `tests/unit/Navigation/createMemoryHistoryTest.ts` covered the old contract and now asserts the new one: a timed-out traversal rejects, and the in-time case points `window.history.state` at the target entry first, the way a real traversal does. -### [@react-navigation+stack+7.8.5+005+clip-inactive-card-inside-card.patch](@react-navigation+stack+7.8.5+005+clip-inactive-card-inside-card.patch) - -- Reason: On the web floating RHP each stacked card draws its own drop shadow through the interpolator's `cardStyle` (`getRHPExtendedCardFrame`). `CardA11yWrapper` puts `overflow: hidden` on every card that is not on top, and the wrapper is sized to the navigator frame, so it clips the shadow of the card under the focused one. Opening an expense over an expense report cut the report card's left and bottom shadow. The patch moves that clip from `CardA11yWrapper` to the `Animated.View` in `Card` that receives `cardStyle`. That view paints the shadow, and `overflow: hidden` does not clip an element's own shadow, so the shadow stays and the content is still clipped. `CardContainer` passes `active` down to `Card`. -- Upstream PR/issue: https://github.com/react-navigation/react-navigation/issues/13254, fix in https://github.com/react-navigation/react-navigation/pull/13255. Upstream declined an opt-out option and asked for this instead. The patch is that change applied to the compiled 7.8.5 output. -- E/App issue: N/A, the patch came out of the internal web floating-RHP styling work. Removing it is tracked in [#101715](https://github.com/Expensify/App/issues/101715), the react-navigation upgrade. -- PR Introducing Patch: [#101093](https://github.com/callstack-internal/Expensify-App/pull/101093) -- PR Updating Patch: N/A -- Note: Not gated to the RHP. Every stack now clips inactive cards one level lower, so the built-in `styles.shadow` edge view inside `Card` is clipped on inactive cards too. The active card covers that edge. -- Note: Upstream shipped the fix in `@react-navigation/stack` 7.11.2, first release containing https://github.com/react-navigation/react-navigation/pull/13255. Their shape differs from ours: `CardA11yWrapper` drops `overflow` completely, and `CardContainer` passes `pageOverflowEnabled: active && headerMode !== 'float' && presentation !== 'modal'`, so the clip lands in `CardContent`, whose `styles.card` still carries `overflow: 'hidden'`. Inactive cards stay clipped and the stacked RHP shadow survives, but the clip sits one level below ours, which leaves the built-in `styles.shadow` edge view unclipped on inactive cards. -- Note: Drop this patch by moving to `stack` 7.11.2 or newer, see #101715 above. It cannot be bumped on its own: `createStackNavigator` there reads `render` from `useNavigationBuilder`, which starts in `core` 7.22.1, and `elements` 2.9.43 plus every sibling declare `native ^7.4.1` as a peer, so npm rejects 7.11.2 next to our `native` 7.1.33. `stack+001+edge-drag-gesture` and `stack+002+dontDetachScreen` need hand-porting to 7.11.2 because it rewrote the gesture and animation lifecycle in `Card.js` and switched the gesture wrapper to `pointerEvents: "auto"`. +- `@react-navigation+stack+7.8.5+005+clip-inactive-card-inside-card.patch` was dropped: upstream shipped the same fix in `@react-navigation/stack` 7.11.2 (https://github.com/react-navigation/react-navigation/pull/13255, reported in https://github.com/react-navigation/react-navigation/issues/13254). The patch came from [#101093](https://github.com/callstack-internal/Expensify-App/pull/101093) to keep the shadow of the card under the focused one on the web floating RHP. Upstream drops `overflow` from `CardA11yWrapper` and clips inactive cards in `CardContent` through `pageOverflowEnabled: active && headerMode !== 'float' && presentation !== 'modal'`, so the stacked RHP shadow survives the same way. The clip sits one level below where our patch put it, so the built-in `styles.shadow` edge view inside `Card` is no longer clipped on inactive cards. The active card covers that edge. From 64298e6f7283b29b866449a6b0193370937bca41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Obudzi=C5=84ski?= Date: Thu, 1 Oct 2026 14:58:37 +0200 Subject: [PATCH 5/7] docs(navigation): polish bump notes and comments Review polish, no behaviour change: collapse multi-line comments to one line, drop narration, and fix comma splices and dash usage to match the plain comment style. Corrects a test comment that named history.go when the mocked symbol is window.history.go. --- patches/react-navigation/details.md | 6 +++--- .../index.native.tsx | 2 +- .../createPlatformStackNavigatorComponent/index.tsx | 2 +- tests/unit/Navigation/createMemoryHistoryTest.ts | 8 ++------ 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/patches/react-navigation/details.md b/patches/react-navigation/details.md index 69460598a0fe..7057b7059d17 100644 --- a/patches/react-navigation/details.md +++ b/patches/react-navigation/details.md @@ -24,7 +24,7 @@ - PR Introducing Patch: [#37891](https://github.com/Expensify/App/pull/37891) - PR Updating Patch: [#64155](https://github.com/Expensify/App/pull/64155), [#98097](https://github.com/Expensify/App/pull/98097), [#101715](https://github.com/Expensify/App/issues/101715) - Note: Re-ported onto 7.22.1. Every hunk applied without changes. -- Note: Core 7.22.0 made `useNavigationBuilder` return a `render` callback and deprecated the `NavigationContent` output it returned before. Our only builder call site, `createPlatformStackNavigatorComponent` (shared by `createRootStackNavigator`, `createRightModalNavigator`, `createSplitNavigator` and `createSearchFullscreenNavigator`), still uses `NavigationContent`, and the `convertCustomScreenOptions` argument this patch adds has no upstream equivalent, so move to `render` and re-check this patch together when `NavigationContent` eventually disappears. +- Note: Core 7.22.0 made `useNavigationBuilder` return a `render` callback and deprecated the `NavigationContent` output it returned before. Our only builder call site, `createPlatformStackNavigatorComponent` (shared by `createRootStackNavigator`, `createRightModalNavigator`, `createSplitNavigator` and `createSearchFullscreenNavigator`), still uses `NavigationContent`, and the `convertCustomScreenOptions` argument this patch adds has no upstream equivalent, so switch to `render` and re-check both together when `NavigationContent` eventually disappears. ### [@react-navigation+core+7.22.1+003+root-state-not-undefined.patch](@react-navigation+core+7.22.1+003+root-state-not-undefined.patch) @@ -32,7 +32,7 @@ - Upstream PR/issue: https://github.com/react-navigation/react-navigation/commit/4e6eaaac6fad57d09ab5a828484b8ffeb4cfc6e5 (core 7.21.13, "fix return type of getRootState") - E/App issue: [#101715](https://github.com/Expensify/App/issues/101715) - PR Introducing Patch: N/A -- Note: Drop this patch once call sites handle the missing state explicitly (a guarded `getRootState()` helper in `src/libs/Navigation` would cover most of them). Until then, calling `getRootState()` before the container mounts logs react-navigation's `NOT_INITIALIZED_ERROR` and returns `undefined` at runtime while the type claims otherwise - same as before the upgrade. +- Note: Drop this patch once call sites handle the missing state explicitly (a guarded `getRootState()` helper in `src/libs/Navigation` would cover most of them). Until then, calling `getRootState()` before the container mounts logs react-navigation's `NOT_INITIALIZED_ERROR` and returns `undefined` at runtime while the type claims otherwise, same as before the upgrade. ### [@react-navigation+native+7.4.1+001+initial.patch](@react-navigation+native+7.4.1+001+initial.patch) @@ -50,7 +50,7 @@ - E/App issue: [#15849](https://github.com/Expensify/App/issues/15849) - PR Introducing Patch: [#18402](https://github.com/Expensify/App/pull/18402) - PR Updating Patch: [#22678](https://github.com/Expensify/App/pull/22678) [#22437](https://github.com/Expensify/App/pull/22437) [#64155](https://github.com/Expensify/App/pull/64155) [#101715](https://github.com/Expensify/App/issues/101715) -- Note: Re-ported onto 7.11.2. The added and removed lines are unchanged; only the surrounding context moved, because 7.10.x wrapped the gesture animation in `animationIdRef`/`isAnimatingRef` guards. 7.11.2 did not touch `Card.js` or `CardStack.js`, so the patch body is identical to the 7.11.1 one. `resetExpectingTouchendWithDelay()` still runs after those guards, so a stale animation callback that returns early no longer resets the monitor. +- Note: Re-ported onto 7.11.2. The added and removed lines are unchanged. Only the surrounding context moved, because 7.10.x wrapped the gesture animation in `animationIdRef`/`isAnimatingRef` guards. 7.11.2 did not touch `Card.js` or `CardStack.js`, so the patch body is identical to the 7.11.1 one. `resetExpectingTouchendWithDelay()` still runs after those guards, so a stale animation callback that returns early no longer resets the monitor. ### [@react-navigation+stack+7.11.2+002+dontDetachScreen.patch](@react-navigation+stack+7.11.2+002+dontDetachScreen.patch) - Reason: Prevents the second screen in the stack from being detached too early. diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx index 97c108e1e221..932a703e2997 100644 --- a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx @@ -54,7 +54,7 @@ function PlatformNavigatorImpl, diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx index c474eeeafea1..984942653701 100644 --- a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx @@ -55,7 +55,7 @@ function PlatformNavigatorImpl, diff --git a/tests/unit/Navigation/createMemoryHistoryTest.ts b/tests/unit/Navigation/createMemoryHistoryTest.ts index 88e0cb4df5b5..ebdfc5a8fa97 100644 --- a/tests/unit/Navigation/createMemoryHistoryTest.ts +++ b/tests/unit/Navigation/createMemoryHistoryTest.ts @@ -49,9 +49,7 @@ describe('createMemoryHistory', () => { const stopListening = history.listen(listener); const navigation = history.go(-1); - // `history.go` is mocked, so nothing moves the browser entry on its own. Point the browser - // state at the entry we asked to land on, the way a real traversal would, otherwise the - // library treats the traversal as failed (see `targetId` in createMemoryHistory). + // `window.history.go` is mocked, so set the browser state the way a real traversal would. Otherwise the library treats the traversal as failed window.history.replaceState({id: history.items.at(0)?.id}, '', '/r/1'); jest.advanceTimersByTime(900); window.dispatchEvent(new PopStateEvent('popstate')); @@ -77,9 +75,7 @@ describe('createMemoryHistory', () => { expect(resolved).not.toHaveBeenCalled(); expect(rejected).not.toHaveBeenCalled(); - // The traversal never happened, so the library reports it as a failed navigation instead of - // pretending it succeeded. That is intentional: resolving here would let callers write history - // for an entry the browser never landed on. + // The traversal never happened, so the library rejects instead of letting callers write history for an entry the browser never landed on jest.advanceTimersByTime(1); await expect(navigation).rejects.toThrow('History was changed during navigation.'); expect(resolved).not.toHaveBeenCalled(); From 6d59a0e7468a84af3cf0b92a512868c559e31528 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Obudzi=C5=84ski?= Date: Fri, 2 Oct 2026 09:27:56 +0200 Subject: [PATCH 6/7] docs(navigation): correct getRootState call-site count in patch notes --- patches/react-navigation/details.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patches/react-navigation/details.md b/patches/react-navigation/details.md index 7057b7059d17..0344a3b96612 100644 --- a/patches/react-navigation/details.md +++ b/patches/react-navigation/details.md @@ -28,7 +28,7 @@ ### [@react-navigation+core+7.22.1+003+root-state-not-undefined.patch](@react-navigation+core+7.22.1+003+root-state-not-undefined.patch) -- Reason: Keep `NavigationContainerRef.getRootState()` typed as `NavigationState` instead of `NavigationState | undefined`. Types only, no runtime change: the implementation already returned `undefined` before the container ref mounted in 7.21.12, the type just did not admit it. Around 30 call sites (including `navigationRef.current?.getRootState().routes` in the navigation tests) hand the result straight to helpers that require a state object, and they all run behind the app's readiness gate (`NavigationRoot`'s `onReady`, `navigationRef.isReady()`), so guarding each one is a separate refactor rather than part of an upgrade. +- Reason: Keep `NavigationContainerRef.getRootState()` typed as `NavigationState` instead of `NavigationState | undefined`. Types only, no runtime change: the implementation already returned `undefined` before the container ref mounted in 7.21.12, the type just did not admit it. Around 120 call sites in `src/` alone (plus examples such as `navigationRef.current?.getRootState().routes` in the navigation tests) hand the result straight to helpers that require a state object, and they all run behind the app's readiness gate (`NavigationRoot`'s `onReady`, `navigationRef.isReady()`), so guarding each one is a separate refactor rather than part of an upgrade. - Upstream PR/issue: https://github.com/react-navigation/react-navigation/commit/4e6eaaac6fad57d09ab5a828484b8ffeb4cfc6e5 (core 7.21.13, "fix return type of getRootState") - E/App issue: [#101715](https://github.com/Expensify/App/issues/101715) - PR Introducing Patch: N/A From 014dd57ff977aa6b592cf2ca245e9a417c71b5a4 Mon Sep 17 00:00:00 2001 From: Tomasz Misiukiewicz Date: Mon, 12 Oct 2026 13:50:23 +0200 Subject: [PATCH 7/7] Update react-navigation patch and seatbelt NavigationContent deprecation - Guard the stale history diff navigation with a try/catch to swallow interrupted navigations - Subtract pendingPopStateDelta from historyDeltaByKeys to keep history deltas in sync - Remove now-unneeded no-deprecated eslint-disable for NavigationContent and seatbelt the lint error instead --- config/eslint/eslint.seatbelt.tsv | 2 ++ ...t-navigation+native+7.4.1+001+initial.patch | 18 +++++++++++------- .../index.native.tsx | 1 - .../index.tsx | 1 - 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/config/eslint/eslint.seatbelt.tsv b/config/eslint/eslint.seatbelt.tsv index 5fec781e7e52..da7a0a9bf120 100644 --- a/config/eslint/eslint.seatbelt.tsv +++ b/config/eslint/eslint.seatbelt.tsv @@ -835,6 +835,8 @@ "../../src/libs/Navigation/linkingConfig/RELATIONS/index.ts" "@typescript-eslint/no-unsafe-type-assertion" 3 "../../src/libs/Navigation/Navigation.ts" "@typescript-eslint/no-unsafe-type-assertion" 10 "../../src/libs/Navigation/OnyxTabNavigator.tsx" "@typescript-eslint/no-unsafe-type-assertion" 3 +"../../src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx" "@typescript-eslint/no-deprecated/NavigationContent" 1 +"../../src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx" "@typescript-eslint/no-deprecated/NavigationContent" 1 "../../src/libs/Navigation/PlatformStackNavigation/navigationOptions/animation/withAnimation.ts" "@typescript-eslint/no-unsafe-type-assertion" 6 "../../src/libs/Navigation/PlatformStackNavigation/ScreenLayout.tsx" "@typescript-eslint/no-unsafe-type-assertion" 1 "../../src/libs/NetSuiteUtils.ts" "@typescript-eslint/no-unsafe-type-assertion" 1 diff --git a/patches/react-navigation/@react-navigation+native+7.4.1+001+initial.patch b/patches/react-navigation/@react-navigation+native+7.4.1+001+initial.patch index a47cdcba1660..b16466d5d91c 100644 --- a/patches/react-navigation/@react-navigation+native+7.4.1+001+initial.patch +++ b/patches/react-navigation/@react-navigation+native+7.4.1+001+initial.patch @@ -145,7 +145,7 @@ index af0cd61..fb06350 100644 pendingPopStateDelta ?? 0); + + // The historyDelta and historyDeltaByKeys may differ if the new state has an entry that didn't exist in previous state -+ const historyDeltaByKeys = getHistoryDeltaByKeys(focusedState, previousFocusedState); ++ const historyDeltaByKeys = getHistoryDeltaByKeys(focusedState, previousFocusedState) - (pendingPopStateDelta ?? 0); if (historyDelta > 0) { // If history length is increased, we should pushState // Note that path might not actually change here, for example, drawer open should pushState @@ -179,7 +179,7 @@ index af0cd61..fb06350 100644 } // Store the updated state as well as fix the path if incorrect -@@ -448,10 +501,22 @@ export function useLinking(ref, { +@@ -448,10 +501,26 @@ export function useLinking(ref, { } } else { // If history length is unchanged, we want to replaceState @@ -197,11 +197,15 @@ index af0cd61..fb06350 100644 + state + }); + } else { -+ await history.go(-staleHistoryDiff); -+ history.push({ -+ path, -+ state -+ }); ++ try { ++ await history.go(-staleHistoryDiff); ++ history.push({ ++ path, ++ state ++ }); ++ } catch (e) { ++ // The navigation was interrupted ++ } + } } } else { diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx index 932a703e2997..5ef88b1e7cc3 100644 --- a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.native.tsx @@ -54,7 +54,6 @@ function PlatformNavigatorImpl, diff --git a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx index 984942653701..d18614af86c0 100644 --- a/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx +++ b/src/libs/Navigation/PlatformStackNavigation/createPlatformStackNavigatorComponent/index.tsx @@ -55,7 +55,6 @@ function PlatformNavigatorImpl,