diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 2a986e133..c5903161c 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -3108,7 +3108,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - RNReanimated (4.1.6): + - RNReanimated (4.2.2): - boost - DoubleConversion - fast_float @@ -3135,11 +3135,11 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNReanimated/reanimated (= 4.1.6) + - RNReanimated/reanimated (= 4.2.2) - RNWorklets - SocketRocket - Yoga - - RNReanimated/reanimated (4.1.6): + - RNReanimated/reanimated (4.2.2): - boost - DoubleConversion - fast_float @@ -3166,11 +3166,11 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNReanimated/reanimated/apple (= 4.1.6) + - RNReanimated/reanimated/apple (= 4.2.2) - RNWorklets - SocketRocket - Yoga - - RNReanimated/reanimated/apple (4.1.6): + - RNReanimated/reanimated/apple (4.2.2): - boost - DoubleConversion - fast_float @@ -3372,7 +3372,7 @@ PODS: - ReactCommon/turbomodule/core - SocketRocket - Yoga - - RNWorklets (0.5.2): + - RNWorklets (0.7.4): - boost - DoubleConversion - fast_float @@ -3399,10 +3399,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNWorklets/worklets (= 0.5.2) + - RNWorklets/worklets (= 0.7.4) - SocketRocket - Yoga - - RNWorklets/worklets (0.5.2): + - RNWorklets/worklets (0.7.4): - boost - DoubleConversion - fast_float @@ -3429,10 +3429,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNWorklets/worklets/apple (= 0.5.2) + - RNWorklets/worklets/apple (= 0.7.4) - SocketRocket - Yoga - - RNWorklets/worklets/apple (0.5.2): + - RNWorklets/worklets/apple (0.7.4): - boost - DoubleConversion - fast_float @@ -4059,12 +4059,12 @@ SPEC CHECKSUMS: RNGoogleSignin: b126da02b9402311c8093e72b064a7e85d139921 RNLocalize: d8ccb568b40c72c767714db3808ce66a1ecf444a RNPermissions: 79345e03d8bede3692368496ec89dcc4768585b5 - RNReanimated: 84b0ffbe148232bda35e2527d0b938a97a51c5e7 + RNReanimated: 372fdfc5e6abdf42bddf588e206d15aedf46121a RNScreens: 4f2aed147a2775017923789d8a0a2d377712ec2e RNShareMenu: 8871da57c9d3ed2b94d30c784d6f67d062e3b016 RNStoreReview: 8f6061907efb6474757db004ee8faac728fd2ada RNSVG: f2979aa72b14050b9220415c19de398f9cec9aaf - RNWorklets: 88b4f0eb7d19cbc07d19274ee66b15200e206d38 + RNWorklets: ca03ce776c15a592ef0700386071466810c41ea0 SensitiveInfo: 09107b865dc23b4e9c0a61ec01385387bf3391a8 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 VisionCamera: 0044a94f7489f19e19d5938e97dfc36f4784af3c diff --git a/package-lock.json b/package-lock.json index bc9bf1e83..db32e4abf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,12 +33,12 @@ "@react-navigation/native": "^7.1.17", "@react-navigation/native-stack": "^7.3.25", "@realm/react": "^0.20.0", - "@rozenite/metro": "^1.2.0", - "@rozenite/mmkv-plugin": "^1.2.0", - "@rozenite/network-activity-plugin": "^1.2.0", - "@rozenite/react-navigation-plugin": "^1.3.0", - "@rozenite/require-profiler-plugin": "^1.2.0", - "@rozenite/tanstack-query-plugin": "^1.2.0", + "@rozenite/metro": "^1.4.0", + "@rozenite/mmkv-plugin": "^1.4.0", + "@rozenite/network-activity-plugin": "^1.4.0", + "@rozenite/react-navigation-plugin": "^1.4.0", + "@rozenite/require-profiler-plugin": "^1.4.0", + "@rozenite/tanstack-query-plugin": "^1.4.0", "@sayem314/react-native-keep-awake": "^1.3.1", "@shopify/flash-list": "^2.2.0", "@tanstack/react-query": "5.90.14", @@ -90,7 +90,7 @@ "react-native-orientation-locker": "github:wonday/react-native-orientation-locker", "react-native-paper": "^5.12.3", "react-native-permissions": "^4.1.5", - "react-native-reanimated": "~4.1.0", + "react-native-reanimated": "^4.2.2", "react-native-reanimated-carousel": "^4.0.3", "react-native-render-html": "^6.3.4", "react-native-restart": "^0.0.27", @@ -105,7 +105,7 @@ "react-native-vision-camera": "^4.7.3", "react-native-volume-manager": "^2.0.8", "react-native-webview": "^13.15.0", - "react-native-worklets": "^0.5.0", + "react-native-worklets": "^0.7.0", "react-native-worklets-core": "^1.6.2", "realm": "^20.2.0", "sanitize-html": "^2.13.0", @@ -219,9 +219,9 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", - "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", @@ -300,13 +300,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", - "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -325,12 +325,12 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -646,12 +646,12 @@ "license": "MIT" }, "node_modules/@babel/parser": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", - "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", "license": "MIT", "dependencies": { - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -1158,17 +1158,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", - "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.27.1", - "globals": "^11.1.0" + "@babel/traverse": "^7.28.4" }, "engines": { "node": ">=6.9.0" @@ -2264,17 +2264,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.7.tgz", - "integrity": "sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.5", - "@babel/parser": "^7.27.7", - "@babel/template": "^7.27.2", - "@babel/types": "^7.27.7", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" @@ -2300,9 +2301,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", - "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -6413,13 +6414,13 @@ } }, "node_modules/@rozenite/metro": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/metro/-/metro-1.2.0.tgz", - "integrity": "sha512-SY9rZ0JtGsGSmJFC/thXoMcnYsP3DchVBdUGeLOtM7ZrBuHw3RlwtZYcKDMxGlAcufD4XUPkkhR53/hN/VmJXA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/metro/-/metro-1.4.0.tgz", + "integrity": "sha512-rcsmJ4paeU944IBiahOLc21o3YEUPuOMy3sNeYpyLvXnfbp64/sXf3jCYu5WzjojB1pjV8dXz64cqQJuAtp2pA==", "license": "MIT", "dependencies": { - "@rozenite/middleware": "1.2.0", - "@rozenite/tools": "1.2.0", + "@rozenite/middleware": "1.4.0", + "@rozenite/tools": "1.4.0", "tslib": "^2.3.0" }, "engines": { @@ -6427,13 +6428,13 @@ } }, "node_modules/@rozenite/middleware": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/middleware/-/middleware-1.2.0.tgz", - "integrity": "sha512-iMESes1NpLuPk05cQ9MMrkdqoGO977HkbyL/Pjn4IDPwDej3qIRzoI6htP1nogrn+SOI41FOJXOuP51TLo1BDw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/middleware/-/middleware-1.4.0.tgz", + "integrity": "sha512-1bxRpCqLkqeMtRpVDbhZnnTYanEM/ye43osuatqv/shgIssx+9ahH3ew21RiOtrE3KftpeC7DOm/7Ou4CeBZ5A==", "license": "MIT", "dependencies": { - "@rozenite/runtime": "1.2.0", - "@rozenite/tools": "1.2.0", + "@rozenite/runtime": "1.4.0", + "@rozenite/tools": "1.4.0", "express": "^5.1.0", "semver": "^7.7.2", "tslib": "^2.3.0" @@ -6455,12 +6456,12 @@ } }, "node_modules/@rozenite/mmkv-plugin": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/mmkv-plugin/-/mmkv-plugin-1.2.0.tgz", - "integrity": "sha512-1cIOUU8AMT7ITi3rRx2uVPksRF8YJnHpRCOku1cOmkW2mJSjgsqOrPk8M2GewCoZj45xXPbSBJKp5x7+4jzEmA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/mmkv-plugin/-/mmkv-plugin-1.4.0.tgz", + "integrity": "sha512-L1Gt8mT+dlIkiUOYc5jNmHu4Kz/KAVaUthHhmbWJks7MOtdDuCqWsk2xkFjjLg125WMN+824eeGIpBH+iKbZmw==", "license": "MIT", "dependencies": { - "@rozenite/plugin-bridge": "1.2.0", + "@rozenite/plugin-bridge": "1.4.0", "nanoevents": "^9.1.0" }, "peerDependencies": { @@ -6470,12 +6471,12 @@ } }, "node_modules/@rozenite/network-activity-plugin": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/network-activity-plugin/-/network-activity-plugin-1.2.0.tgz", - "integrity": "sha512-3l2+w8hXUMg+YmRadYdCoknpCH0IURYJh2fR0ZF5hx3F5cYbfXaJ7Dk31fmKuUA+iyPgaZvmvegbHbSoD1wjjQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/network-activity-plugin/-/network-activity-plugin-1.4.0.tgz", + "integrity": "sha512-1BD+0PDmXI1cKayccRcn3JL/P3YUcsWaigdxV80/Gu1liSzlrBN6PvZ7EKLaVXua6sSM24coQg05rZ4bjTcaHg==", "license": "MIT", "dependencies": { - "@rozenite/plugin-bridge": "1.2.0", + "@rozenite/plugin-bridge": "1.4.0", "nanoevents": "^9.1.0" }, "peerDependencies": { @@ -6488,9 +6489,9 @@ } }, "node_modules/@rozenite/plugin-bridge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/plugin-bridge/-/plugin-bridge-1.2.0.tgz", - "integrity": "sha512-f+rdHD9ACx52SWicVqxB0w82y2bCNk7xda6+EdtVMcchDyzMeqKJWso0BN3yruyB0zFxMeIxd3m7gPtPQPaOdg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/plugin-bridge/-/plugin-bridge-1.4.0.tgz", + "integrity": "sha512-Ug8DqdXmLvy4IXU6VfzXE02RLdnP5wBPmwxnuF8Lw/4WHAeNTazWVHvjyhVTSlTd4Ov25bTgEnHaDxABnGZ2cA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -6503,41 +6504,26 @@ } }, "node_modules/@rozenite/react-navigation-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@rozenite/react-navigation-plugin/-/react-navigation-plugin-1.3.0.tgz", - "integrity": "sha512-5FkW/xRNnW2THXA6ZraydhvmrxJuq2ejRQf77RZsW+pSoDRwT4CBj90cfP4ATS8A9lfG/I1S/yd5nnoQnjoKBQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/react-navigation-plugin/-/react-navigation-plugin-1.4.0.tgz", + "integrity": "sha512-by9kHVz5T8CFaW373F3iglJXXHdqwjyLA2rhGUI3MyCSbpq34J3m7uhia4Mf9qAGGCrtH7QJa/opybzVpC7nyA==", "license": "MIT", "dependencies": { - "@rozenite/plugin-bridge": "1.3.0", + "@rozenite/plugin-bridge": "1.4.0", "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "@react-navigation/core": "^7.12.1" } }, - "node_modules/@rozenite/react-navigation-plugin/node_modules/@rozenite/plugin-bridge": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@rozenite/plugin-bridge/-/plugin-bridge-1.3.0.tgz", - "integrity": "sha512-OBo+glOyzpAFkhrUYKcpF+W+uHq8S3xRcelVniM2rwrqd7Xr+nfHU1lIJA4Phh6eSiLw4H6k3Uw5saSPis6a8g==", - "license": "MIT", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "react": ">=17" - } - }, "node_modules/@rozenite/require-profiler-plugin": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/require-profiler-plugin/-/require-profiler-plugin-1.2.0.tgz", - "integrity": "sha512-4iAnSW3dwmTkzRCkBovfdSjnRU/BxquyTpe7hn0ihCL37YnxGCs5BmN/dsFj4euYdIE8YMjfO8eEsQO2y4TSwA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/require-profiler-plugin/-/require-profiler-plugin-1.4.0.tgz", + "integrity": "sha512-lgF7QBPJ+mDHMoSNvzmJ/IBMCw6qsM7IZnDHNG47bwSn6NTOyx/GHdBqqFsZHvo+BZgGlIh8I4uqc6r2N9vErQ==", "license": "MIT", "dependencies": { - "@rozenite/plugin-bridge": "1.2.0", - "@rozenite/tools": "1.2.0", + "@rozenite/plugin-bridge": "1.4.0", + "@rozenite/tools": "1.4.0", "nanoevents": "^9.1.0" }, "peerDependencies": { @@ -6546,9 +6532,9 @@ } }, "node_modules/@rozenite/runtime": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/runtime/-/runtime-1.2.0.tgz", - "integrity": "sha512-37oqM/zfe53g9GCqjzGgCKGquOCKiw/h8Ydiqh3kRfdKUWiXWZTHRgPuo6UV0HIACIJBWEKuJUpnGyO6DNBxzw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/runtime/-/runtime-1.4.0.tgz", + "integrity": "sha512-3QyBJTdpTzkxd8jt5yyveTfTGHDmkFPLli4j5alvKeb09xVb+fxDhleDJhEGJwgmUBuYg5weBZGNpkyg5K0ArA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -6558,12 +6544,12 @@ } }, "node_modules/@rozenite/tanstack-query-plugin": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/tanstack-query-plugin/-/tanstack-query-plugin-1.2.0.tgz", - "integrity": "sha512-aanyt23jW/kPKh/Aip8O4Mu8z2g/PkqOWoiTJak1K8gQ1YLu0KUz9+l+kXKc/ceK6xQcgUbZZB7WqYqzMY5n/w==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/tanstack-query-plugin/-/tanstack-query-plugin-1.4.0.tgz", + "integrity": "sha512-dOib20914G4aCqxJgQ+TAYP+c3Laxj+6KwaMvYAmTPi61hOPkFPNZqwuAXu+Z4iK/kLoJaRI3ef4gNDRlQudtA==", "license": "MIT", "dependencies": { - "@rozenite/plugin-bridge": "1.2.0", + "@rozenite/plugin-bridge": "1.4.0", "fast-deep-equal": "^3.1.3" }, "peerDependencies": { @@ -6573,9 +6559,9 @@ } }, "node_modules/@rozenite/tools": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@rozenite/tools/-/tools-1.2.0.tgz", - "integrity": "sha512-I5E4az+EWq2xRf9aKDg02bubm+2l6fvbQG63DmIOykjQtQ50uFR9t65UMv0/nvdwDlK2aSIyXCr8aJF/O6GA6g==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rozenite/tools/-/tools-1.4.0.tgz", + "integrity": "sha512-Ptq7g5cfrvl6Ct0BAyZnSiUf9ojkkHkN/snwgyNsoqN92m6wztgUfUSxglpoynf/2SLVU6WQhJh8noseAn0VfA==", "license": "MIT" }, "node_modules/@sayem314/react-native-keep-awake": { @@ -14571,14 +14557,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/globalthis": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", @@ -20941,19 +20919,18 @@ } }, "node_modules/react-native-reanimated": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.1.6.tgz", - "integrity": "sha512-F+ZJBYiok/6Jzp1re75F/9aLzkgoQCOh4yxrnwATa8392RvM3kx+fiXXFvwcgE59v48lMwd9q0nzF1oJLXpfxQ==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.2.2.tgz", + "integrity": "sha512-o3kKvdD8cVlg12Z4u3jv0MFAt53QV4k7gD9OLwQqU8eZLyd8QvaOjVZIghMZhC2pjP93uUU44PlO5JgF8S4Vxw==", "license": "MIT", "dependencies": { - "react-native-is-edge-to-edge": "^1.2.1", - "semver": "7.7.2" + "react-native-is-edge-to-edge": "1.2.1", + "semver": "7.7.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0", "react": "*", "react-native": "*", - "react-native-worklets": ">=0.5.0" + "react-native-worklets": ">=0.7.0" } }, "node_modules/react-native-reanimated-carousel": { @@ -20968,10 +20945,20 @@ "react-native-reanimated": ">=3.0.0" } }, + "node_modules/react-native-reanimated/node_modules/react-native-is-edge-to-edge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.2.1.tgz", + "integrity": "sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native-reanimated/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -21221,25 +21208,25 @@ } }, "node_modules/react-native-worklets": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/react-native-worklets/-/react-native-worklets-0.5.2.tgz", - "integrity": "sha512-lCzmuIPAK/UaOJYEPgYpVqrsxby1I54f7PyyZUMEO04nwc00CDrCvv9lCTY1daLHYTF8lS3f9zlzErfVsIKqkA==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/react-native-worklets/-/react-native-worklets-0.7.4.tgz", + "integrity": "sha512-NYOdM1MwBb3n+AtMqy1tFy3Mn8DliQtd8sbzAVRf9Gc+uvQ0zRfxN7dS8ZzoyX7t6cyQL5THuGhlnX+iFlQTag==", "license": "MIT", "dependencies": { - "@babel/plugin-transform-arrow-functions": "^7.0.0-0", - "@babel/plugin-transform-class-properties": "^7.0.0-0", - "@babel/plugin-transform-classes": "^7.0.0-0", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", - "@babel/plugin-transform-optional-chaining": "^7.0.0-0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", - "@babel/plugin-transform-template-literals": "^7.0.0-0", - "@babel/plugin-transform-unicode-regex": "^7.0.0-0", - "@babel/preset-typescript": "^7.16.7", - "convert-source-map": "^2.0.0", - "semver": "7.7.2" + "@babel/plugin-transform-arrow-functions": "7.27.1", + "@babel/plugin-transform-class-properties": "7.27.1", + "@babel/plugin-transform-classes": "7.28.4", + "@babel/plugin-transform-nullish-coalescing-operator": "7.27.1", + "@babel/plugin-transform-optional-chaining": "7.27.1", + "@babel/plugin-transform-shorthand-properties": "7.27.1", + "@babel/plugin-transform-template-literals": "7.27.1", + "@babel/plugin-transform-unicode-regex": "7.27.1", + "@babel/preset-typescript": "7.27.1", + "convert-source-map": "2.0.0", + "semver": "7.7.3" }, "peerDependencies": { - "@babel/core": "^7.0.0-0", + "@babel/core": "*", "react": "*", "react-native": "*" } @@ -21258,9 +21245,9 @@ } }, "node_modules/react-native-worklets/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "bin": { "semver": "bin/semver.js" diff --git a/package.json b/package.json index 4793ccb8c..684ca9b0d 100644 --- a/package.json +++ b/package.json @@ -69,12 +69,12 @@ "@react-navigation/native": "^7.1.17", "@react-navigation/native-stack": "^7.3.25", "@realm/react": "^0.20.0", - "@rozenite/metro": "^1.2.0", - "@rozenite/mmkv-plugin": "^1.2.0", - "@rozenite/network-activity-plugin": "^1.2.0", - "@rozenite/react-navigation-plugin": "^1.3.0", - "@rozenite/require-profiler-plugin": "^1.2.0", - "@rozenite/tanstack-query-plugin": "^1.2.0", + "@rozenite/metro": "^1.4.0", + "@rozenite/mmkv-plugin": "^1.4.0", + "@rozenite/network-activity-plugin": "^1.4.0", + "@rozenite/react-navigation-plugin": "^1.4.0", + "@rozenite/require-profiler-plugin": "^1.4.0", + "@rozenite/tanstack-query-plugin": "^1.4.0", "@sayem314/react-native-keep-awake": "^1.3.1", "@shopify/flash-list": "^2.2.0", "@tanstack/react-query": "5.90.14", @@ -126,7 +126,7 @@ "react-native-orientation-locker": "github:wonday/react-native-orientation-locker", "react-native-paper": "^5.12.3", "react-native-permissions": "^4.1.5", - "react-native-reanimated": "~4.1.0", + "react-native-reanimated": "^4.2.2", "react-native-reanimated-carousel": "^4.0.3", "react-native-render-html": "^6.3.4", "react-native-restart": "^0.0.27", @@ -139,9 +139,9 @@ "react-native-svg-transformer": "^1.5.2", "react-native-url-polyfill": "^2.0.0", "react-native-vision-camera": "^4.7.3", - "react-native-worklets": "^0.5.0", "react-native-volume-manager": "^2.0.8", "react-native-webview": "^13.15.0", + "react-native-worklets": "^0.7.0", "react-native-worklets-core": "^1.6.2", "realm": "^20.2.0", "sanitize-html": "^2.13.0", diff --git a/src/components/Camera/RotatableIconWrapper.tsx b/src/components/Camera/RotatableIconWrapper.tsx index 9cb34945e..77fbbab28 100644 --- a/src/components/Camera/RotatableIconWrapper.tsx +++ b/src/components/Camera/RotatableIconWrapper.tsx @@ -1,6 +1,7 @@ import type { PropsWithChildren } from "react"; import React from "react"; import type { ViewStyle } from "react-native"; +import { View } from "react-native"; import DeviceInfo from "react-native-device-info"; import type { AnimatedStyle } from "react-native-reanimated"; import Animated from "react-native-reanimated"; @@ -18,7 +19,11 @@ const RotatableIconWrapper = ( { containerClass, }: Props ) => { if ( isTablet || !rotatableAnimatedStyle ) { - return children; + return ( + + {children} + + ); } return ( diff --git a/src/components/Camera/hooks/useZoom.ts b/src/components/Camera/hooks/useZoom.ts index 20bd06f82..e219f9091 100644 --- a/src/components/Camera/hooks/useZoom.ts +++ b/src/components/Camera/hooks/useZoom.ts @@ -12,12 +12,12 @@ import { import { Extrapolation, interpolate, - runOnJS, useAnimatedProps, useSharedValue, withSpring, } from "react-native-reanimated"; import type { CameraDevice, CameraProps } from "react-native-vision-camera"; +import { scheduleOnRN } from "react-native-worklets"; // This is taken from react-native-vision library itself: https://github.com/mrousavy/react-native-vision-camera/blob/9eed89aac6155eba155595f3e006707152550d0d/package/example/src/Constants.ts#L19 https://github.com/mrousavy/react-native-vision-camera/blob/9eed89aac6155eba155595f3e006707152550d0d/package/example/src/CameraPage.tsx#L34 @@ -115,7 +115,7 @@ const useZoom = ( device: CameraDevice ): object => { ); zoom.set( newZoom ); - runOnJS( updateZoomTextValue )( newZoom ); + scheduleOnRN( updateZoomTextValue, newZoom ); }, [maxZoomWithPinch, minZoom, updateZoomTextValue, startZoom, zoom] ); const animatedProps = useAnimatedProps < CameraProps >( diff --git a/src/components/LoginSignUp/ForgotPassword.tsx b/src/components/LoginSignUp/ForgotPassword.tsx index f80149594..03a0da5e3 100644 --- a/src/components/LoginSignUp/ForgotPassword.tsx +++ b/src/components/LoginSignUp/ForgotPassword.tsx @@ -1,10 +1,11 @@ import { useNavigation } from "@react-navigation/native"; import { WarningSheet } from "components/SharedComponents"; -import type { ScrollView } from "components/styledComponents"; +import { View } from "components/styledComponents"; import { t } from "i18next"; import React, { useCallback, useState } from "react"; import { Keyboard, TouchableWithoutFeedback } from "react-native"; import { openInbox } from "sharedHelpers/mail"; +import useKeyboardInfo from "sharedHooks/useKeyboardInfo"; import { resetPassword, @@ -13,14 +14,10 @@ import ForgotPasswordForm from "./ForgotPasswordForm"; import Header from "./Header"; import LoginSignUpWrapper from "./LoginSignUpWrapper"; -interface RenderProps { - // eslint-disable-next-line react/no-unused-prop-types - scrollViewRef: { current: null | React.Ref }; -} - const ForgotPassword = ( ) => { const navigation = useNavigation( ); const [showSheet, setShowSheet] = useState( false ); + const { keyboardShown } = useKeyboardInfo( ); const reset = useCallback( async ( email: string ) => { await resetPassword( email ); @@ -32,34 +29,30 @@ const ForgotPassword = ( ) => { Keyboard.dismiss( ); }; - const renderForgotPassword = useCallback( ( { scrollViewRef }: RenderProps ) => ( - <> - {showSheet && ( - setShowSheet( false )} - confirm={openInbox} - headerText={t( "CHECK-YOUR-EMAIL" )} - text={t( "If-an-account-with-that-email-exists" )} - buttonText={t( "OPEN-EMAIL" )} - secondButtonText={t( "BACK-TO-LOGIN" )} - handleSecondButtonPress={( ) => { - setShowSheet( false ); - navigation.navigate( "LoginStackNavigator", { screen: "Login" } ); - }} - buttonType="focus" - loading={false} - /> - )} -
- - - ), [showSheet, setShowSheet, reset, navigation] ); - return ( - - {renderForgotPassword} - + + {showSheet && ( + setShowSheet( false )} + confirm={openInbox} + headerText={t( "CHECK-YOUR-EMAIL" )} + text={t( "If-an-account-with-that-email-exists" )} + buttonText={t( "OPEN-EMAIL" )} + secondButtonText={t( "BACK-TO-LOGIN" )} + handleSecondButtonPress={( ) => { + setShowSheet( false ); + navigation.navigate( "LoginStackNavigator", { screen: "Login" } ); + }} + buttonType="focus" + loading={false} + /> + )} + +
+ + + ); }; diff --git a/src/components/LoginSignUp/ForgotPasswordForm.tsx b/src/components/LoginSignUp/ForgotPasswordForm.tsx index 8f7a1e6f9..d20214c7d 100644 --- a/src/components/LoginSignUp/ForgotPasswordForm.tsx +++ b/src/components/LoginSignUp/ForgotPasswordForm.tsx @@ -3,30 +3,22 @@ import { Body1, Button, } from "components/SharedComponents"; -import type { ScrollView } from "components/styledComponents"; import { View } from "components/styledComponents"; import { t } from "i18next"; -import type { ElementRef, Node } from "react"; -import React, { - useCallback, useEffect, useRef, useState, -} from "react"; +import type { Node } from "react"; +import React, { useEffect, useRef, useState } from "react"; import { TouchableWithoutFeedback } from "react-native"; -import useKeyboardInfo from "sharedHooks/useKeyboardInfo"; import LoginSignUpInputField from "./LoginSignUpInputField"; interface Props { reset: ( email: string ) => Promise; - scrollViewRef?: { current: null | ElementRef }; } -const ForgotPasswordForm = ( { reset, scrollViewRef }: Props ): Node => { +const ForgotPasswordForm = ( { reset }: Props ): Node => { const [email, setEmail] = useState( "" ); const emailRef = useRef( null ); const navigation = useNavigation( ); - const { keyboardShown } = useKeyboardInfo( ); - - const inputFieldRef = useRef( null ); const blurFields = () => { if ( emailRef.current ) { @@ -46,24 +38,6 @@ const ForgotPasswordForm = ( { reset, scrollViewRef }: Props ): Node => { return unsubscribeTransition; }, [navigation] ); - const scrollToItem = useCallback( ( ) => { - if ( scrollViewRef?.current && inputFieldRef?.current ) { - inputFieldRef.current?.measureLayout( - scrollViewRef.current, - ( _, y ) => { - scrollViewRef.current?.scrollTo( { y, animated: true } ); - }, - () => console.log( "Failed to measure" ), - ); - } - }, [scrollViewRef] ); - - useEffect( ( ) => { - if ( keyboardShown ) { - scrollToItem( ); - } - }, [keyboardShown, scrollToItem] ); - return ( @@ -79,17 +53,15 @@ const ForgotPasswordForm = ( { reset, scrollViewRef }: Props ): Node => { onChangeText={text => setEmail( text )} testID="Login.email" /> - -