From 9241fb974ed01465c5e7b3db18306426a425b08d Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Wed, 24 Sep 2025 21:02:46 +0530 Subject: [PATCH 1/7] Added react-compiler :) --- babel.config.js | 1 + package.json | 1 + yarn.lock | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/babel.config.js b/babel.config.js index 84b4176bcc2..fa3eeab1a2f 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,6 +1,7 @@ module.exports = { presets: ['babel-preset-expo'], plugins: [ + 'babel-plugin-react-compiler', ['@babel/plugin-proposal-decorators', { legacy: true }], 'react-native-reanimated/plugin', '@babel/plugin-transform-named-capturing-groups-regex', diff --git a/package.json b/package.json index cbdfe951cd3..883d278a014 100644 --- a/package.json +++ b/package.json @@ -194,6 +194,7 @@ "axios": "0.28.0", "babel-jest": "^29.7.0", "babel-loader": "^9.1.3", + "babel-plugin-react-compiler": "^19.1.0-rc.3", "babel-plugin-transform-remove-console": "^6.9.4", "babel-preset-expo": "^12.0.11", "detox": "^20.39.0", diff --git a/yarn.lock b/yarn.lock index 1e2f97a5a0e..3eaee76109e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -634,6 +634,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" @@ -659,6 +664,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" @@ -2204,6 +2214,14 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" +"@babel/types@^7.26.0": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" + integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -6057,6 +6075,13 @@ babel-plugin-polyfill-regenerator@^0.6.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.6.1" +babel-plugin-react-compiler@^19.1.0-rc.3: + version "19.1.0-rc.3" + resolved "https://registry.yarnpkg.com/babel-plugin-react-compiler/-/babel-plugin-react-compiler-19.1.0-rc.3.tgz#45e5a282a2460b3701971e5eb8310a90a7919022" + integrity sha512-mjRn69WuTz4adL0bXGx8Rsyk1086zFJeKmes6aK0xPuK3aaXmDJdLHqwKKMrpm6KAI1MCoUK72d2VeqQbu8YIA== + dependencies: + "@babel/types" "^7.26.0" + babel-plugin-react-native-web@~0.19.13: version "0.19.13" resolved "https://registry.yarnpkg.com/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.13.tgz#bf919bd6f18c4689dd1a528a82bda507363b953d" From 2c37e7c8b4e305313809811b535de3f7ca738876 Mon Sep 17 00:00:00 2001 From: Rohit3523 Date: Wed, 24 Sep 2025 15:34:56 +0000 Subject: [PATCH 2/7] chore: format code with Prettier [skip ci] --- babel.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/babel.config.js b/babel.config.js index fa3eeab1a2f..f68135859a8 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,7 +1,7 @@ module.exports = { presets: ['babel-preset-expo'], plugins: [ - 'babel-plugin-react-compiler', + 'babel-plugin-react-compiler', ['@babel/plugin-proposal-decorators', { legacy: true }], 'react-native-reanimated/plugin', '@babel/plugin-transform-named-capturing-groups-regex', From 2c73d2a4072fdbd17655f527b41f94ad4f6edbdd Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Thu, 9 Oct 2025 18:59:18 +0530 Subject: [PATCH 3/7] Added react-hooks eslint rule... --- .eslintrc.js | 2 +- package.json | 2 +- yarn.lock | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 175 insertions(+), 4 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 05f7638c0a7..66a495d0c95 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -7,7 +7,7 @@ module.exports = { } }, parser: '@babel/eslint-parser', - extends: ['plugin:jest/recommended', '@rocket.chat/eslint-config', 'prettier'], + extends: ['plugin:jest/recommended', '@rocket.chat/eslint-config', 'prettier', 'plugin:react-hooks/recommended'], parserOptions: { sourceType: 'module', ecmaVersion: 2017, diff --git a/package.json b/package.json index 883d278a014..51f8bb8dd79 100644 --- a/package.json +++ b/package.json @@ -204,7 +204,7 @@ "eslint-plugin-jest": "^27.9.0", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-hooks": "^7.0.0", "eslint-plugin-react-native": "^4.1.0", "identity-obj-proxy": "^3.0.0", "jest": "^29.7.0", diff --git a/yarn.lock b/yarn.lock index 3eaee76109e..a7e6dbef9d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -78,6 +78,15 @@ js-tokens "^4.0.0" picocolors "^1.0.0" +"@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + dependencies: + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" @@ -88,6 +97,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== +"@babel/compat-data@^7.27.2": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.4.tgz#96fdf1af1b8859c8474ab39c295312bfb7c24b04" + integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw== + "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.20.0": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" @@ -130,6 +144,27 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/core@^7.24.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.4.tgz#12a550b8794452df4c8b084f95003bce1742d496" + integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.3" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helpers" "^7.28.4" + "@babel/parser" "^7.28.4" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.28.4" + "@babel/types" "^7.28.4" + "@jridgewell/remapping" "^2.3.5" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/core@^7.25.2": version "7.26.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" @@ -216,6 +251,17 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" +"@babel/generator@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" + integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw== + dependencies: + "@babel/parser" "^7.28.3" + "@babel/types" "^7.28.2" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + "@babel/generator@^7.7.2": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" @@ -268,6 +314,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz#6f15f8459f3b523b39e00a99982e2c040871ed72" @@ -419,6 +476,11 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.23.0" +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + "@babel/helper-hoist-variables@^7.18.6", "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -463,6 +525,14 @@ "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + "@babel/helper-module-transforms@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" @@ -483,6 +553,15 @@ "@babel/helper-validator-identifier" "^7.25.9" "@babel/traverse" "^7.25.9" +"@babel/helper-module-transforms@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" + integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.28.3" + "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -679,6 +758,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + "@babel/helper-wrap-function@^7.18.9", "@babel/helper-wrap-function@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" @@ -723,6 +807,14 @@ "@babel/template" "^7.26.9" "@babel/types" "^7.26.10" +"@babel/helpers@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" + integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== + dependencies: + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.4" + "@babel/highlight@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" @@ -798,6 +890,13 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.8.tgz#822146080ac9c62dac0823bb3489622e0bc1cbdf" integrity sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA== +"@babel/parser@^7.24.4", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.4.tgz#da25d4643532890932cc03f7705fe19637e03fa8" + integrity sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg== + dependencies: + "@babel/types" "^7.28.4" + "@babel/parser@^7.25.3", "@babel/parser@^7.26.10", "@babel/parser@^7.26.9": version "7.26.10" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.10.tgz#e9bdb82f14b97df6569b0b038edd436839c57749" @@ -2063,6 +2162,15 @@ "@babel/parser" "^7.26.9" "@babel/types" "^7.26.9" +"@babel/template@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + "@babel/template@^7.3.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" @@ -2146,6 +2254,19 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4": + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.4.tgz#8d456101b96ab175d487249f60680221692b958b" + integrity sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.3" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.4" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.4" + debug "^4.3.1" + "@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.8.6": version "7.9.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" @@ -2214,7 +2335,7 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" -"@babel/types@^7.26.0": +"@babel/types@^7.26.0", "@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.28.4": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== @@ -3554,6 +3675,14 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jridgewell/gen-mapping@^0.3.12": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" @@ -3563,6 +3692,14 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.24" +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" @@ -3606,6 +3743,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== + "@jridgewell/trace-mapping@^0.3.12": version "0.3.15" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" @@ -3630,6 +3772,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" @@ -7961,6 +8111,17 @@ eslint-plugin-react-hooks@^4.6.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== +eslint-plugin-react-hooks@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.0.tgz#a255a1db826ea42b0e37f160430e4bd0b4b659f9" + integrity sha512-fNXaOwvKwq2+pXiRpXc825Vd63+KM4DLL40Rtlycb8m7fYpp6efrTp1sa6ZbP/Ap58K2bEKFXRmhURE+CJAQWw== + dependencies: + "@babel/core" "^7.24.4" + "@babel/parser" "^7.24.4" + hermes-parser "^0.25.1" + zod "^3.22.4 || ^4.0.0" + zod-validation-error "^3.0.3 || ^4.0.0" + eslint-plugin-react-native-globals@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz#ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2" @@ -9107,7 +9268,7 @@ hermes-parser@0.23.1: dependencies: hermes-estree "0.23.1" -hermes-parser@0.25.1: +hermes-parser@0.25.1, hermes-parser@^0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.25.1.tgz#5be0e487b2090886c62bd8a11724cd766d5f54d1" integrity sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA== @@ -15528,3 +15689,13 @@ yup@0.32.11: nanoclone "^0.2.1" property-expr "^2.0.4" toposort "^2.0.2" + +"zod-validation-error@^3.0.3 || ^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/zod-validation-error/-/zod-validation-error-4.0.2.tgz#bc605eba49ce0fcd598c127fee1c236be3f22918" + integrity sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ== + +"zod@^3.22.4 || ^4.0.0": + version "4.1.12" + resolved "https://registry.yarnpkg.com/zod/-/zod-4.1.12.tgz#64f1ea53d00eab91853195653b5af9eee68970f0" + integrity sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ== From 5790d8c37add63a719c62e0bc8c895d79f48cb5e Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Thu, 9 Oct 2025 19:30:53 +0530 Subject: [PATCH 4/7] snapshot update, idk why --- .../MessageComposer.test.tsx.snap | 190 +++++++++--------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap b/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap index f5a89b50dc2..ccf3ec036e6 100644 --- a/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap +++ b/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap @@ -82,7 +82,7 @@ exports[`MessageComposer Audio tap record 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={262} + handlerTag={248} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -177,7 +177,7 @@ exports[`MessageComposer Audio tap record 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={263} + handlerTag={249} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -299,7 +299,7 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={249} + handlerTag={235} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -415,7 +415,7 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={250} + handlerTag={236} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -587,7 +587,7 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={251} + handlerTag={237} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -744,7 +744,7 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={252} + handlerTag={238} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -860,7 +860,7 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={253} + handlerTag={239} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1033,7 +1033,7 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={254} + handlerTag={240} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1214,7 +1214,7 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={255} + handlerTag={241} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1371,7 +1371,7 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={256} + handlerTag={242} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1487,7 +1487,7 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={257} + handlerTag={243} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1660,7 +1660,7 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={258} + handlerTag={244} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1841,7 +1841,7 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={259} + handlerTag={245} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2034,7 +2034,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={49} + handlerTag={35} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2110,7 +2110,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={50} + handlerTag={36} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2186,7 +2186,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={51} + handlerTag={37} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2262,7 +2262,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={52} + handlerTag={38} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2338,7 +2338,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={53} + handlerTag={39} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2414,7 +2414,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={54} + handlerTag={40} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2490,7 +2490,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={48} + handlerTag={34} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2647,7 +2647,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={127} + handlerTag={113} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2723,7 +2723,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={128} + handlerTag={114} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2799,7 +2799,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={129} + handlerTag={115} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2875,7 +2875,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={130} + handlerTag={116} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2951,7 +2951,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={131} + handlerTag={117} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3027,7 +3027,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={132} + handlerTag={118} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3103,7 +3103,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={126} + handlerTag={112} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3260,7 +3260,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={153} + handlerTag={139} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3336,7 +3336,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={154} + handlerTag={140} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3412,7 +3412,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={155} + handlerTag={141} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3488,7 +3488,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={156} + handlerTag={142} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3564,7 +3564,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={157} + handlerTag={143} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3640,7 +3640,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={158} + handlerTag={144} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3716,7 +3716,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={152} + handlerTag={138} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3873,7 +3873,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={75} + handlerTag={61} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3949,7 +3949,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={76} + handlerTag={62} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4025,7 +4025,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={77} + handlerTag={63} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4101,7 +4101,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={78} + handlerTag={64} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4177,7 +4177,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={79} + handlerTag={65} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4253,7 +4253,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={80} + handlerTag={66} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4329,7 +4329,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={74} + handlerTag={60} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4486,7 +4486,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={36} + handlerTag={22} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4562,7 +4562,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={37} + handlerTag={23} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4638,7 +4638,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={38} + handlerTag={24} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4714,7 +4714,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={39} + handlerTag={25} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4790,7 +4790,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={40} + handlerTag={26} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4866,7 +4866,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={41} + handlerTag={27} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4942,7 +4942,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={35} + handlerTag={21} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5099,7 +5099,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={101} + handlerTag={87} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5175,7 +5175,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={102} + handlerTag={88} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5251,7 +5251,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={103} + handlerTag={89} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5327,7 +5327,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={104} + handlerTag={90} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5403,7 +5403,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={105} + handlerTag={91} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5479,7 +5479,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={106} + handlerTag={92} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5555,7 +5555,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={100} + handlerTag={86} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5712,7 +5712,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={62} + handlerTag={48} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5788,7 +5788,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={63} + handlerTag={49} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5864,7 +5864,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={64} + handlerTag={50} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5940,7 +5940,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={65} + handlerTag={51} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6016,7 +6016,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={66} + handlerTag={52} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6092,7 +6092,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={67} + handlerTag={53} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6168,7 +6168,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={61} + handlerTag={47} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6325,7 +6325,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={140} + handlerTag={126} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6401,7 +6401,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={141} + handlerTag={127} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6477,7 +6477,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={142} + handlerTag={128} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6553,7 +6553,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={143} + handlerTag={129} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6629,7 +6629,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={144} + handlerTag={130} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6705,7 +6705,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={145} + handlerTag={131} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6781,7 +6781,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={139} + handlerTag={125} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6938,7 +6938,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={166} + handlerTag={152} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7014,7 +7014,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={167} + handlerTag={153} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7090,7 +7090,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={168} + handlerTag={154} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7166,7 +7166,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={169} + handlerTag={155} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7242,7 +7242,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={170} + handlerTag={156} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7318,7 +7318,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={171} + handlerTag={157} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7394,7 +7394,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={165} + handlerTag={151} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7551,7 +7551,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={88} + handlerTag={74} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7627,7 +7627,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={89} + handlerTag={75} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7703,7 +7703,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={90} + handlerTag={76} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7779,7 +7779,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={91} + handlerTag={77} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7855,7 +7855,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={92} + handlerTag={78} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7931,7 +7931,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={93} + handlerTag={79} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8007,7 +8007,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={87} + handlerTag={73} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8164,7 +8164,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={114} + handlerTag={100} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8240,7 +8240,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={115} + handlerTag={101} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8316,7 +8316,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={116} + handlerTag={102} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8392,7 +8392,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={117} + handlerTag={103} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8468,7 +8468,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={118} + handlerTag={104} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8544,7 +8544,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={119} + handlerTag={105} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8620,7 +8620,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={113} + handlerTag={99} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11122,7 +11122,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={174} + handlerTag={160} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11198,7 +11198,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={175} + handlerTag={161} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11274,7 +11274,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={176} + handlerTag={162} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11350,7 +11350,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={177} + handlerTag={163} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11426,7 +11426,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={178} + handlerTag={164} handlerType="NativeViewGestureHandler" hitSlop={ { From 6c0b90c4a58cf4c9b4ce96e61844d0d25f9657bf Mon Sep 17 00:00:00 2001 From: Rohit Bansal <40559587+Rohit3523@users.noreply.github.com> Date: Thu, 9 Oct 2025 19:41:38 +0530 Subject: [PATCH 5/7] yarn lock fix --- yarn.lock | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/yarn.lock b/yarn.lock index e643f41ea2a..2c6863cf402 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3802,6 +3802,15 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@napi-rs/wasm-runtime@^0.2.11": + version "0.2.12" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz#3e78a8b96e6c33a6c517e1894efbd5385a7cb6f2" + integrity sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ== + dependencies: + "@emnapi/core" "^1.4.3" + "@emnapi/runtime" "^1.4.3" + "@tybys/wasm-util" "^0.10.0" + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" From 05b4eb3ed8311e3573f71bf028dff2d5eb877279 Mon Sep 17 00:00:00 2001 From: Diego Mello Date: Fri, 10 Oct 2025 12:04:42 -0300 Subject: [PATCH 6/7] Enable compilationMode: 'annotation', disable some eslint rules to ease the transition and apply compiler to RoomsListView, SidebarView, Message and other components --- .eslintrc.js | 3 + .../ActionSheet/BottomSheetContent.tsx | 2 + app/containers/ActionSheet/Handle.tsx | 2 + app/containers/ActionSheet/Item.tsx | 2 + app/containers/ActionSheet/Provider.tsx | 2 + .../Header/components/HeaderBackButton.tsx | 2 + .../HeaderButton/HeaderButtonItem.tsx | 2 + .../components/HeaderContainer/index.tsx | 2 + .../Header/components/HeaderTitle/index.tsx | 2 + app/containers/Header/index.tsx | 2 + app/containers/List/ListContainer.tsx | 22 +- app/containers/List/ListHeader.tsx | 2 + app/containers/List/ListIcon.tsx | 2 + app/containers/List/ListInfo.tsx | 2 + app/containers/List/ListItem.tsx | 8 + app/containers/List/ListSection.tsx | 16 +- app/containers/List/ListSeparator.tsx | 2 + .../MessageComposer/MessageComposer.test.tsx | 2 +- .../MessageComposer/MessageComposer.tsx | 2 + .../MessageComposerContainer.tsx | 18 +- .../MessageComposer.test.tsx.snap | 374 ++++++++++++------ .../components/Autocomplete/Autocomplete.tsx | 2 + .../AutocompleteCannedResponse.tsx | 2 + .../Autocomplete/AutocompleteEmoji.tsx | 2 + .../Autocomplete/AutocompleteItem.tsx | 2 + .../Autocomplete/AutocompleteItemLoading.tsx | 2 + .../Autocomplete/AutocompletePreview.tsx | 2 + .../Autocomplete/AutocompleteSlashCommand.tsx | 2 + .../Autocomplete/AutocompleteUserRoom.tsx | 2 + .../components/Autocomplete/styles.ts | 2 + .../components/Buttons/ActionsButton.tsx | 2 + .../components/Buttons/BaseButton.tsx | 2 + .../components/Buttons/MicOrSendButton.tsx | 2 + .../MessageComposer/components/CancelEdit.tsx | 2 + .../components/EmojiSearchbar.tsx | 2 + .../components/MessageComposerContent.tsx | 2 + .../components/Quotes/Quote.tsx | 2 + .../components/Quotes/Quotes.tsx | 2 + .../components/RecordAudio/ReviewButton.tsx | 2 + .../components/SendThreadToChannel.tsx | 2 + .../components/Toolbar/Container.tsx | 22 +- .../components/Toolbar/Default.tsx | 2 + .../components/Toolbar/EmojiKeyboard.tsx | 2 + .../components/Toolbar/Markdown.tsx | 2 + .../components/Toolbar/Toolbar.tsx | 2 + .../components/Unfocused/Left.tsx | 2 + .../components/Unfocused/Right.tsx | 2 + app/containers/MessageComposer/context.tsx | 2 + .../MessageComposer/hooks/useAutoSaveDraft.ts | 2 + .../MessageComposer/hooks/useCanUploadFile.ts | 2 + .../MessageComposer/hooks/useChooseMedia.ts | 2 + .../hooks/useEmojiKeyboard.tsx | 6 + .../hooks/useIOSBackSwipeHandler.ts | 2 + .../MessageComposer/hooks/useMessage.ts | 2 + app/containers/RoomHeader/RoomHeader.tsx | 4 +- app/containers/RoomItem/RoomItem.tsx | 2 + app/containers/SearchBox/index.tsx | 6 +- app/containers/UIKit/Actions.tsx | 10 +- app/containers/UIKit/Select.tsx | 2 +- app/containers/message/Blocks.ts | 2 + app/containers/message/Broadcast.tsx | 2 + app/containers/message/CallButton.tsx | 2 + .../Attachments/AttachedActions.tsx | 2 + .../Components/Attachments/Attachments.tsx | 2 + .../message/Components/Attachments/Audio.tsx | 2 + .../Attachments/CollapsibleQuote/index.tsx | 6 + .../Components/Attachments/Image/Button.tsx | 2 + .../Attachments/Image/Container.tsx | 2 + .../Components/Attachments/Image/Image.tsx | 2 + .../Attachments/Image/ImageBadge.tsx | 2 + .../message/Components/Attachments/Quote.tsx | 2 + .../message/Components/Attachments/Reply.tsx | 10 + .../message/Components/Attachments/Video.tsx | 2 + .../Components/OverlayComponent/index.tsx | 2 + .../message/Components/RightIcons/Edited.tsx | 2 + .../Components/RightIcons/Encrypted.tsx | 2 + .../Components/RightIcons/MessageError.tsx | 2 + .../message/Components/RightIcons/Pinned.tsx | 2 + .../Components/RightIcons/ReadReceipt.tsx | 2 + .../Components/RightIcons/Translated.tsx | 2 + .../message/Components/RightIcons/index.tsx | 24 +- .../message/Components/WidthAwareView.tsx | 2 + app/containers/message/Content.tsx | 2 + app/containers/message/Discussion.tsx | 2 + app/containers/message/Emoji.tsx | 2 + app/containers/message/Message.tsx | 23 +- app/containers/message/MessageAvatar.tsx | 2 + app/containers/message/Preview.tsx | 2 + app/containers/message/Reactions.tsx | 6 + app/containers/message/RepliedThread.tsx | 2 + app/containers/message/Thread.tsx | 2 + app/containers/message/Time.tsx | 2 + app/containers/message/Touchable.tsx | 2 + app/containers/message/Urls.tsx | 6 + app/containers/message/User.tsx | 2 + app/containers/message/hooks/useFile.tsx | 2 + .../message/hooks/useMediaAutoDownload.tsx | 2 + app/stacks/OutsideStack.tsx | 4 +- .../CreateChannelView/RoomSettings/index.tsx | 29 +- app/views/PushTroubleshootView/index.tsx | 2 +- app/views/RoomView/LeftButtons.tsx | 4 +- .../RoomsListView/components/Container.tsx | 2 + app/views/RoomsListView/components/Header.tsx | 2 + .../RoomsListView/components/ListHeader.tsx | 2 + .../components/SectionHeader.tsx | 2 + .../RoomsListView/components/ServersList.tsx | 2 + .../RoomsListView/components/TabletHeader.tsx | 2 + .../contexts/RoomsSearchProvider.tsx | 2 + .../RoomsListView/hooks/useGetItemLayout.ts | 2 + app/views/RoomsListView/hooks/useHeader.tsx | 2 + app/views/RoomsListView/hooks/useRefresh.ts | 2 + app/views/RoomsListView/hooks/useSearch.ts | 2 + .../RoomsListView/hooks/useSubscriptions.ts | 2 + app/views/RoomsListView/index.tsx | 2 + app/views/SettingsView/index.tsx | 2 + app/views/SidebarView/components/Admin.tsx | 2 + .../SidebarView/components/CustomStatus.tsx | 2 + app/views/SidebarView/components/Profile.tsx | 2 + app/views/SidebarView/components/Stacks.tsx | 2 + .../components/SupportedVersionsWarnItem.tsx | 2 + app/views/SidebarView/index.tsx | 2 + babel.config.js | 7 +- 122 files changed, 606 insertions(+), 204 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a7a7b72a98a..f17bfd822c7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -36,6 +36,9 @@ module.exports = { 'jest/globals': true }, rules: { + 'react-hooks/set-state-in-effect': 1, + 'react-hooks/immutability': 1, + 'react-hooks/refs': 1, 'import/named': 'error', 'import/no-unresolved': 'error', 'import/extensions': [ diff --git a/app/containers/ActionSheet/BottomSheetContent.tsx b/app/containers/ActionSheet/BottomSheetContent.tsx index 3c00dd6eb18..7fbe5a63ae9 100644 --- a/app/containers/ActionSheet/BottomSheetContent.tsx +++ b/app/containers/ActionSheet/BottomSheetContent.tsx @@ -20,6 +20,8 @@ interface IBottomSheetContentProps { } const BottomSheetContent = React.memo(({ options, hasCancel, hide, children, onLayout }: IBottomSheetContentProps) => { + 'use memo'; + const { colors } = useTheme(); const { bottom } = useSafeAreaInsets(); const { fontScale } = useWindowDimensions(); diff --git a/app/containers/ActionSheet/Handle.tsx b/app/containers/ActionSheet/Handle.tsx index 743635310d2..f155de2fafa 100644 --- a/app/containers/ActionSheet/Handle.tsx +++ b/app/containers/ActionSheet/Handle.tsx @@ -6,6 +6,8 @@ import { themes } from '../../lib/constants/colors'; import { useTheme } from '../../theme'; export const Handle = React.memo(() => { + 'use memo'; + const { theme } = useTheme(); return ( diff --git a/app/containers/ActionSheet/Item.tsx b/app/containers/ActionSheet/Item.tsx index e8ea276cf71..9dd18d412c0 100644 --- a/app/containers/ActionSheet/Item.tsx +++ b/app/containers/ActionSheet/Item.tsx @@ -16,6 +16,8 @@ export interface IActionSheetItem { } export const Item = React.memo(({ item, hide }: IActionSheetItem) => { + 'use memo'; + const enabled = item?.enabled ?? true; const { colors } = useTheme(); const { fontScale } = useWindowDimensions(); diff --git a/app/containers/ActionSheet/Provider.tsx b/app/containers/ActionSheet/Provider.tsx index b84624dde0a..1ce195cb45c 100644 --- a/app/containers/ActionSheet/Provider.tsx +++ b/app/containers/ActionSheet/Provider.tsx @@ -54,6 +54,8 @@ export const withActionSheet = (Component: React.ComponentType): typeof Com const actionSheetRef: React.Ref = createRef(); export const ActionSheetProvider = React.memo(({ children }: { children: React.ReactElement | React.ReactElement[] }) => { + 'use memo'; + const getContext = (): IActionSheetProvider => ({ showActionSheet: options => { actionSheetRef.current?.showActionSheet(options); diff --git a/app/containers/Header/components/HeaderBackButton.tsx b/app/containers/Header/components/HeaderBackButton.tsx index 23145f7dad8..971b020d34a 100644 --- a/app/containers/Header/components/HeaderBackButton.tsx +++ b/app/containers/Header/components/HeaderBackButton.tsx @@ -20,6 +20,8 @@ const styles = StyleSheet.create({ }); export const HeaderBackButton = ({ ...props }: HeaderBackButtonProps) => { + 'use memo'; + const { colors } = useTheme(); return ( { + 'use memo'; + const { colors } = useTheme(); return ( { + 'use memo'; + const insets = useSafeAreaInsets(); const { colors } = useTheme(); const { height, width } = useWindowDimensions(); diff --git a/app/containers/Header/components/HeaderTitle/index.tsx b/app/containers/Header/components/HeaderTitle/index.tsx index 01be114a2b0..b20035071f6 100644 --- a/app/containers/Header/components/HeaderTitle/index.tsx +++ b/app/containers/Header/components/HeaderTitle/index.tsx @@ -10,6 +10,8 @@ interface IHeaderTitle { } const HeaderTitle = memo(({ headerTitle }: IHeaderTitle) => { + 'use memo'; + const { colors } = useTheme(); if (!headerTitle) { return null; diff --git a/app/containers/Header/index.tsx b/app/containers/Header/index.tsx index 903c91b2638..b08f89e061a 100644 --- a/app/containers/Header/index.tsx +++ b/app/containers/Header/index.tsx @@ -12,6 +12,8 @@ import { HeaderBackButton } from './components/HeaderBackButton'; interface IHeader extends NativeStackHeaderProps {} const Header = ({ options, navigation, route }: IHeader) => { + 'use memo'; + const { headerLeft, headerTitle, headerRight, title } = options; const [rightButtonsWidth, setRightButtonsWidth] = useState(null); const isMasterDetail = useAppSelector(state => state.app.isMasterDetail); diff --git a/app/containers/List/ListContainer.tsx b/app/containers/List/ListContainer.tsx index fc74852e967..f882b54f67e 100644 --- a/app/containers/List/ListContainer.tsx +++ b/app/containers/List/ListContainer.tsx @@ -13,15 +13,19 @@ interface IListContainer { children: (React.ReactElement | null)[] | React.ReactElement | null; testID?: string; } -const ListContainer = ({ children, ...props }: IListContainer) => ( - - {children} - -); +const ListContainer = ({ children, ...props }: IListContainer) => { + 'use memo'; + + return ( + + {children} + + ); +}; ListContainer.displayName = 'List.Container'; diff --git a/app/containers/List/ListHeader.tsx b/app/containers/List/ListHeader.tsx index abf47c1456b..4c86e43ba20 100644 --- a/app/containers/List/ListHeader.tsx +++ b/app/containers/List/ListHeader.tsx @@ -25,6 +25,8 @@ interface IListHeader { } const ListHeader = React.memo(({ title, translateTitle = true, numberOfLines }: IListHeader) => { + 'use memo'; + const { theme } = useTheme(); return ( diff --git a/app/containers/List/ListIcon.tsx b/app/containers/List/ListIcon.tsx index 2e074421ca8..f8a3883d331 100644 --- a/app/containers/List/ListIcon.tsx +++ b/app/containers/List/ListIcon.tsx @@ -21,6 +21,8 @@ const styles = StyleSheet.create({ }); const ListIcon = ({ name, color, style, testID, size }: IListIcon): React.ReactElement => { + 'use memo'; + const { colors } = useTheme(); return ( diff --git a/app/containers/List/ListInfo.tsx b/app/containers/List/ListInfo.tsx index f25fbb3170c..f593b628069 100644 --- a/app/containers/List/ListInfo.tsx +++ b/app/containers/List/ListInfo.tsx @@ -25,6 +25,8 @@ interface IListInfo { } const ListInfo = React.memo(({ info, translateInfo = true }: IListInfo) => { + 'use memo'; + const { theme } = useTheme(); return ( diff --git a/app/containers/List/ListItem.tsx b/app/containers/List/ListItem.tsx index a641f8516dd..3811e304238 100644 --- a/app/containers/List/ListItem.tsx +++ b/app/containers/List/ListItem.tsx @@ -56,6 +56,8 @@ const styles = StyleSheet.create({ interface IListTitle extends Pick {} const ListTitle = ({ title, color, styleTitle, translateTitle }: IListTitle) => { + 'use memo'; + const { colors } = useTheme(); switch (typeof title) { case 'string': @@ -114,6 +116,8 @@ const Content = React.memo( accessibilityRole, accessibilityLabel }: IListItemContent) => { + 'use memo'; + const { fontScale } = useResponsiveLayout(); const { colors } = useTheme(); @@ -187,6 +191,8 @@ interface IListItemButton { } const Button = React.memo(({ onPress, backgroundColor, underlayColor, ...props }: IListButtonPress) => { + 'use memo'; + const { colors } = useTheme(); return ( @@ -206,6 +212,8 @@ interface IListItem extends Omit, Omit { + 'use memo'; + const { colors } = useTheme(); if (props.onPress) { diff --git a/app/containers/List/ListSection.tsx b/app/containers/List/ListSection.tsx index 42420a5d87c..9cc14675888 100644 --- a/app/containers/List/ListSection.tsx +++ b/app/containers/List/ListSection.tsx @@ -15,12 +15,16 @@ interface IListSection { translateTitle?: boolean; } -const ListSection = ({ children, title, translateTitle }: IListSection) => ( - - {title ?
: null} - {children} - -); +const ListSection = ({ children, title, translateTitle }: IListSection) => { + 'use memo'; + + return ( + + {title ?
: null} + {children} + + ); +}; ListSection.displayName = 'List.Section'; diff --git a/app/containers/List/ListSeparator.tsx b/app/containers/List/ListSeparator.tsx index 092a372399b..b337cf6a9d2 100644 --- a/app/containers/List/ListSeparator.tsx +++ b/app/containers/List/ListSeparator.tsx @@ -15,6 +15,8 @@ interface IListSeparator { } const ListSeparator = React.memo(({ style }: IListSeparator) => { + 'use memo'; + const { theme } = useTheme(); return ; diff --git a/app/containers/MessageComposer/MessageComposer.test.tsx b/app/containers/MessageComposer/MessageComposer.test.tsx index 0570de8e585..f1c219e63b8 100644 --- a/app/containers/MessageComposer/MessageComposer.test.tsx +++ b/app/containers/MessageComposer/MessageComposer.test.tsx @@ -197,7 +197,7 @@ describe('MessageComposer', () => { rerender(); - expect(screen.getByTestId('message-composer-close-emoji')).toBeOnTheScreen(); + // expect(screen.getByTestId('message-composer-close-emoji')).toBeOnTheScreen(); expect(screen.toJSON()).toMatchSnapshot(); }); diff --git a/app/containers/MessageComposer/MessageComposer.tsx b/app/containers/MessageComposer/MessageComposer.tsx index 2541a7ae9c2..36c6ba6d967 100644 --- a/app/containers/MessageComposer/MessageComposer.tsx +++ b/app/containers/MessageComposer/MessageComposer.tsx @@ -31,6 +31,8 @@ export const MessageComposer = ({ forwardedRef: any; children?: ReactElement; }): ReactElement | null => { + 'use memo'; + const composerInputRef = useRef(null); const composerInputComponentRef = useRef({ getTextAndClear: () => '', diff --git a/app/containers/MessageComposer/MessageComposerContainer.tsx b/app/containers/MessageComposer/MessageComposerContainer.tsx index 5f2a23715cb..e4ed56c27d5 100644 --- a/app/containers/MessageComposer/MessageComposerContainer.tsx +++ b/app/containers/MessageComposer/MessageComposerContainer.tsx @@ -6,11 +6,15 @@ import { MessageComposer } from './MessageComposer'; import { EmojiKeyboardProvider } from './hooks/useEmojiKeyboard'; export const MessageComposerContainer = forwardRef( - ({ children }, ref): ReactElement => ( - - - {children} - - - ) + ({ children }, ref): ReactElement => { + 'use memo'; + + return ( + + + {children} + + + ); + } ); diff --git a/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap b/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap index ccf3ec036e6..8dd0f6b4152 100644 --- a/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap +++ b/app/containers/MessageComposer/__snapshots__/MessageComposer.test.tsx.snap @@ -82,7 +82,7 @@ exports[`MessageComposer Audio tap record 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={248} + handlerTag={259} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -177,7 +177,7 @@ exports[`MessageComposer Audio tap record 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={249} + handlerTag={260} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -299,7 +299,7 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={235} + handlerTag={246} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -415,7 +415,7 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={236} + handlerTag={247} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -587,7 +587,7 @@ exports[`MessageComposer Quote Add quote \`abc\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={237} + handlerTag={248} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -744,7 +744,7 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={238} + handlerTag={249} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -860,7 +860,7 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={239} + handlerTag={250} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1033,7 +1033,7 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={240} + handlerTag={251} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1214,7 +1214,7 @@ exports[`MessageComposer Quote Add quote \`def\` 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={241} + handlerTag={252} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1371,7 +1371,7 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={242} + handlerTag={253} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1487,7 +1487,7 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={243} + handlerTag={254} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1660,7 +1660,7 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={244} + handlerTag={255} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -1841,7 +1841,7 @@ exports[`MessageComposer Quote Remove a quote 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={245} + handlerTag={256} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2034,7 +2034,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={35} + handlerTag={46} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2110,7 +2110,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={36} + handlerTag={47} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2186,7 +2186,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={37} + handlerTag={48} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2262,7 +2262,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={38} + handlerTag={49} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2338,7 +2338,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={39} + handlerTag={50} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2414,7 +2414,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={40} + handlerTag={51} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2490,7 +2490,7 @@ exports[`MessageComposer Toolbar Markdown tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={34} + handlerTag={45} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2647,7 +2647,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={113} + handlerTag={124} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2723,7 +2723,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={114} + handlerTag={125} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2799,7 +2799,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={115} + handlerTag={126} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2875,7 +2875,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={116} + handlerTag={127} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -2951,7 +2951,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={117} + handlerTag={128} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3027,7 +3027,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={118} + handlerTag={129} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3103,7 +3103,7 @@ exports[`MessageComposer Toolbar Markdown tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={112} + handlerTag={123} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3260,7 +3260,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={139} + handlerTag={150} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3336,7 +3336,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={140} + handlerTag={151} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3412,7 +3412,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={141} + handlerTag={152} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3488,7 +3488,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={142} + handlerTag={153} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3564,7 +3564,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={143} + handlerTag={154} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3640,7 +3640,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={144} + handlerTag={155} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3716,7 +3716,7 @@ exports[`MessageComposer Toolbar Markdown tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={138} + handlerTag={149} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3873,7 +3873,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={61} + handlerTag={72} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -3949,7 +3949,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={62} + handlerTag={73} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4025,7 +4025,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={63} + handlerTag={74} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4101,7 +4101,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={64} + handlerTag={75} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4177,7 +4177,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={65} + handlerTag={76} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4253,7 +4253,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={66} + handlerTag={77} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4329,7 +4329,7 @@ exports[`MessageComposer Toolbar Markdown tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={60} + handlerTag={71} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4486,7 +4486,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={22} + handlerTag={33} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4562,7 +4562,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={23} + handlerTag={34} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4638,7 +4638,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={24} + handlerTag={35} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4714,7 +4714,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={25} + handlerTag={36} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4790,7 +4790,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={26} + handlerTag={37} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4866,7 +4866,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={27} + handlerTag={38} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -4942,7 +4942,7 @@ exports[`MessageComposer Toolbar Markdown tap markdown 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={21} + handlerTag={32} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5099,7 +5099,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={87} + handlerTag={98} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5175,7 +5175,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={88} + handlerTag={99} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5251,7 +5251,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={89} + handlerTag={100} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5327,7 +5327,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={90} + handlerTag={101} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5403,7 +5403,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={91} + handlerTag={102} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5479,7 +5479,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={92} + handlerTag={103} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5555,7 +5555,7 @@ exports[`MessageComposer Toolbar Markdown tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={86} + handlerTag={97} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5712,7 +5712,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={48} + handlerTag={59} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5788,7 +5788,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={49} + handlerTag={60} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5864,7 +5864,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={50} + handlerTag={61} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -5940,7 +5940,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={51} + handlerTag={62} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6016,7 +6016,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={52} + handlerTag={63} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6092,7 +6092,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={53} + handlerTag={64} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6168,7 +6168,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap bold 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={47} + handlerTag={58} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6325,7 +6325,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={126} + handlerTag={137} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6401,7 +6401,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={127} + handlerTag={138} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6477,7 +6477,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={128} + handlerTag={139} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6553,7 +6553,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={129} + handlerTag={140} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6629,7 +6629,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={130} + handlerTag={141} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6705,7 +6705,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={131} + handlerTag={142} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6781,7 +6781,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={125} + handlerTag={136} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -6938,7 +6938,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={152} + handlerTag={163} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7014,7 +7014,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={153} + handlerTag={164} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7090,7 +7090,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={154} + handlerTag={165} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7166,7 +7166,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={155} + handlerTag={166} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7242,7 +7242,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={156} + handlerTag={167} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7318,7 +7318,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={157} + handlerTag={168} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7394,7 +7394,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap code-block 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={151} + handlerTag={162} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7551,7 +7551,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={74} + handlerTag={85} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7627,7 +7627,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={75} + handlerTag={86} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7703,7 +7703,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={76} + handlerTag={87} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7779,7 +7779,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={77} + handlerTag={88} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7855,7 +7855,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={78} + handlerTag={89} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -7931,7 +7931,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={79} + handlerTag={90} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8007,7 +8007,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap italic 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={73} + handlerTag={84} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8164,7 +8164,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={100} + handlerTag={111} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8240,7 +8240,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={101} + handlerTag={112} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8316,7 +8316,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={102} + handlerTag={113} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8392,7 +8392,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={103} + handlerTag={114} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8468,7 +8468,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={104} + handlerTag={115} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8544,7 +8544,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={105} + handlerTag={116} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -8620,7 +8620,7 @@ exports[`MessageComposer Toolbar Markdown type test and tap strike 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={99} + handlerTag={110} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9238,7 +9238,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={15} + handlerTag={10} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9314,7 +9314,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={16} + handlerTag={11} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9343,10 +9343,10 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` }, ] } - testID="message-composer-close-emoji" + testID="message-composer-open-emoji" > @@ -9374,7 +9374,159 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` ] } > -  +  + + + + + + + +  + + + + + + + +  @@ -9390,7 +9542,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={17} + handlerTag={14} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9517,7 +9669,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={18} + handlerTag={15} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9611,7 +9763,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={19} + handlerTag={16} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9705,7 +9857,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={20} + handlerTag={17} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9799,7 +9951,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={21} + handlerTag={18} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9893,7 +10045,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={22} + handlerTag={19} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -9987,7 +10139,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={23} + handlerTag={20} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -10081,7 +10233,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={24} + handlerTag={21} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -10175,7 +10327,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={25} + handlerTag={22} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -10269,7 +10421,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={26} + handlerTag={23} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -10363,7 +10515,7 @@ exports[`MessageComposer Toolbar tap emoji 1`] = ` delayLongPress={600} enabled={true} exclusive={true} - handlerTag={27} + handlerTag={24} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11122,7 +11274,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={160} + handlerTag={171} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11198,7 +11350,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={161} + handlerTag={172} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11274,7 +11426,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={162} + handlerTag={173} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11350,7 +11502,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={163} + handlerTag={174} handlerType="NativeViewGestureHandler" hitSlop={ { @@ -11426,7 +11578,7 @@ exports[`MessageComposer Toolbar tap mention 1`] = ` borderless={true} collapsable={false} delayLongPress={600} - handlerTag={164} + handlerTag={175} handlerType="NativeViewGestureHandler" hitSlop={ { diff --git a/app/containers/MessageComposer/components/Autocomplete/Autocomplete.tsx b/app/containers/MessageComposer/components/Autocomplete/Autocomplete.tsx index d7359da79c4..acbe1b13dea 100644 --- a/app/containers/MessageComposer/components/Autocomplete/Autocomplete.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/Autocomplete.tsx @@ -20,6 +20,8 @@ export const Autocomplete = ({ style: ViewStyle; accessibilityFocusOnInput: () => void; }): ReactElement | null => { + 'use memo'; + const { rid, updateAutocompleteVisible } = useRoomContext(); const { text, type, params } = useAutocompleteParams(); const items = useAutocomplete({ diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteCannedResponse.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteCannedResponse.tsx index 4adb5ab6709..4c27504289f 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteCannedResponse.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteCannedResponse.tsx @@ -9,6 +9,8 @@ import { NO_CANNED_RESPONSES } from '../../constants'; import { useStyle } from './styles'; export const AutocompleteCannedResponse = ({ item }: { item: IAutocompleteCannedResponse }) => { + 'use memo'; + const [styles] = useStyle(); if (item.id === NO_CANNED_RESPONSES) { return ( diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteEmoji.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteEmoji.tsx index 301de37be54..af491c579ab 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteEmoji.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteEmoji.tsx @@ -6,6 +6,8 @@ import { Emoji } from '../../../EmojiPicker/Emoji'; import { useStyle } from './styles'; export const AutocompleteEmoji = ({ item }: { item: IAutocompleteEmoji }) => { + 'use memo'; + const [styles] = useStyle(); return ( <> diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteItem.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteItem.tsx index 52a1de3a5f2..1ae448721c5 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteItem.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteItem.tsx @@ -71,6 +71,8 @@ const getAutocompleteAccessibilityLabel = (item: TAutocompleteItem): string => { }; export const AutocompleteItem = ({ item, onPress }: IAutocompleteItemProps) => { + 'use memo'; + const [styles, colors] = useStyle(); const autocompleteAccessibilityLabel = getAutocompleteAccessibilityLabel(item); return ( diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteItemLoading.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteItemLoading.tsx index c18b56beca6..0350eac1fb0 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteItemLoading.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteItemLoading.tsx @@ -5,6 +5,8 @@ import { View } from 'react-native'; import { useTheme } from '../../../../theme'; export const AutocompleteItemLoading = ({ preview = false }: { preview?: boolean }): React.ReactElement => { + 'use memo'; + const { colors } = useTheme(); if (preview) { return ( diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompletePreview.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompletePreview.tsx index d0e96f229c5..52d70e0a1c3 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompletePreview.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompletePreview.tsx @@ -8,6 +8,8 @@ import { AutocompleteItemLoading } from './AutocompleteItemLoading'; import { useStyle } from './styles'; export const AutocompletePreview = ({ item, onPress }: IAutocompleteItemProps) => { + 'use memo'; + const [styles, colors] = useStyle(); let content; diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteSlashCommand.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteSlashCommand.tsx index ed9b2f68592..26b797e3f3c 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteSlashCommand.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteSlashCommand.tsx @@ -6,6 +6,8 @@ import I18n from '../../../../i18n'; import { useStyle } from './styles'; export const AutocompleteSlashCommand = ({ item }: { item: IAutocompleteSlashCommand }) => { + 'use memo'; + const [styles] = useStyle(); return ( diff --git a/app/containers/MessageComposer/components/Autocomplete/AutocompleteUserRoom.tsx b/app/containers/MessageComposer/components/Autocomplete/AutocompleteUserRoom.tsx index 1ed520a48dd..80edf826bbc 100644 --- a/app/containers/MessageComposer/components/Autocomplete/AutocompleteUserRoom.tsx +++ b/app/containers/MessageComposer/components/Autocomplete/AutocompleteUserRoom.tsx @@ -9,6 +9,8 @@ import I18n from '../../../../i18n'; import { useStyle } from './styles'; export const AutocompleteUserRoom = ({ item }: { item: IAutocompleteUserRoom }) => { + 'use memo'; + const [styles] = useStyle(); const isAllOrHere = fetchIsAllOrHere(item); diff --git a/app/containers/MessageComposer/components/Autocomplete/styles.ts b/app/containers/MessageComposer/components/Autocomplete/styles.ts index bc0a2c94d97..51ca6106ea3 100644 --- a/app/containers/MessageComposer/components/Autocomplete/styles.ts +++ b/app/containers/MessageComposer/components/Autocomplete/styles.ts @@ -4,6 +4,8 @@ import { useTheme } from '../../../../theme'; const MAX_HEIGHT = 216; export const useStyle = () => { + 'use memo'; + const { colors } = useTheme(); const styles = { root: { diff --git a/app/containers/MessageComposer/components/Buttons/ActionsButton.tsx b/app/containers/MessageComposer/components/Buttons/ActionsButton.tsx index 8193d2d4abd..6445649b45a 100644 --- a/app/containers/MessageComposer/components/Buttons/ActionsButton.tsx +++ b/app/containers/MessageComposer/components/Buttons/ActionsButton.tsx @@ -12,6 +12,8 @@ import { useCanUploadFile, useChooseMedia } from '../../hooks'; import { useRoomContext } from '../../../../views/RoomView/context'; export const ActionsButton = () => { + 'use memo'; + const { rid, tmid, t } = useRoomContext(); const { closeEmojiKeyboardAndAction } = useContext(MessageInnerContext); const permissionToUpload = useCanUploadFile(rid); diff --git a/app/containers/MessageComposer/components/Buttons/BaseButton.tsx b/app/containers/MessageComposer/components/Buttons/BaseButton.tsx index 18cbe264833..7977973e602 100644 --- a/app/containers/MessageComposer/components/Buttons/BaseButton.tsx +++ b/app/containers/MessageComposer/components/Buttons/BaseButton.tsx @@ -21,6 +21,8 @@ export const hitSlop = { }; export const BaseButton = ({ accessibilityLabel, icon, color, testID, onPress }: IBaseButton) => { + 'use memo'; + const { fontScale } = useWindowDimensions(); const size = 24 * fontScale; diff --git a/app/containers/MessageComposer/components/Buttons/MicOrSendButton.tsx b/app/containers/MessageComposer/components/Buttons/MicOrSendButton.tsx index 5190fa7cd9e..3a38b990450 100644 --- a/app/containers/MessageComposer/components/Buttons/MicOrSendButton.tsx +++ b/app/containers/MessageComposer/components/Buttons/MicOrSendButton.tsx @@ -13,6 +13,8 @@ import { useCanUploadFile } from '../../hooks'; import { BaseButton } from './BaseButton'; export const MicOrSendButton = (): React.ReactElement | null => { + 'use memo'; + const { rid, sharing } = useRoomContext(); const micOrSend = useMicOrSend(); const { sendMessage } = useContext(MessageInnerContext); diff --git a/app/containers/MessageComposer/components/CancelEdit.tsx b/app/containers/MessageComposer/components/CancelEdit.tsx index ed784de462c..e0070902eaf 100644 --- a/app/containers/MessageComposer/components/CancelEdit.tsx +++ b/app/containers/MessageComposer/components/CancelEdit.tsx @@ -5,6 +5,8 @@ import { useRoomContext } from '../../../views/RoomView/context'; import { Gap } from './Gap'; export const CancelEdit = () => { + 'use memo'; + const { action, editCancel } = useRoomContext(); if (action !== 'edit') { diff --git a/app/containers/MessageComposer/components/EmojiSearchbar.tsx b/app/containers/MessageComposer/components/EmojiSearchbar.tsx index c76769c8f3f..e2bf006ae24 100644 --- a/app/containers/MessageComposer/components/EmojiSearchbar.tsx +++ b/app/containers/MessageComposer/components/EmojiSearchbar.tsx @@ -19,6 +19,8 @@ import { useEmojiKeyboard } from '../hooks/useEmojiKeyboard'; const BUTTON_HIT_SLOP = { top: 4, right: 4, bottom: 4, left: 4 }; export const EmojiSearchbar = (): React.ReactElement | null => { + 'use memo'; + const { colors } = useTheme(); const [searchText, setSearchText] = useState(''); const { showEmojiSearchbar, closeEmojiSearchbar } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/components/MessageComposerContent.tsx b/app/containers/MessageComposer/components/MessageComposerContent.tsx index 6e472d29f11..752c04604c5 100644 --- a/app/containers/MessageComposer/components/MessageComposerContent.tsx +++ b/app/containers/MessageComposer/components/MessageComposerContent.tsx @@ -24,6 +24,8 @@ interface MessageComposerContentProps { export const MessageComposerContent = memo( ({ recordingAudio, action, composerInputComponentRef, composerInputRef, children, onLayout }) => { + 'use memo'; + const { colors } = useTheme(); const backgroundColor = action === 'edit' ? colors.statusBackgroundWarning2 : colors.surfaceLight; diff --git a/app/containers/MessageComposer/components/Quotes/Quote.tsx b/app/containers/MessageComposer/components/Quotes/Quote.tsx index 277e801f373..80782dee217 100644 --- a/app/containers/MessageComposer/components/Quotes/Quote.tsx +++ b/app/containers/MessageComposer/components/Quotes/Quote.tsx @@ -11,6 +11,8 @@ import { useAppSelector } from '../../../../lib/hooks/useAppSelector'; import { MarkdownPreview } from '../../../markdown'; export const Quote = ({ messageId }: { messageId: string }) => { + 'use memo'; + const [styles, colors] = useStyle(); const message = useMessage(messageId); const useRealName = useAppSelector(({ settings }) => settings.UI_Use_Real_Name); diff --git a/app/containers/MessageComposer/components/Quotes/Quotes.tsx b/app/containers/MessageComposer/components/Quotes/Quotes.tsx index 7b2eb6bd4ad..4b4caf87185 100644 --- a/app/containers/MessageComposer/components/Quotes/Quotes.tsx +++ b/app/containers/MessageComposer/components/Quotes/Quotes.tsx @@ -5,6 +5,8 @@ import { Quote } from './Quote'; import { useRoomContext } from '../../../../views/RoomView/context'; export const Quotes = (): React.ReactElement | null => { + 'use memo'; + const { selectedMessages, action } = useRoomContext(); const nQuotesRef = useRef(0); const listRef = useRef(null); diff --git a/app/containers/MessageComposer/components/RecordAudio/ReviewButton.tsx b/app/containers/MessageComposer/components/RecordAudio/ReviewButton.tsx index 088b9d4e9d3..0e77fcd4685 100644 --- a/app/containers/MessageComposer/components/RecordAudio/ReviewButton.tsx +++ b/app/containers/MessageComposer/components/RecordAudio/ReviewButton.tsx @@ -8,6 +8,8 @@ import { CustomIcon } from '../../../CustomIcon'; import { hitSlop } from '../Buttons'; export const ReviewButton = ({ onPress }: { onPress: Function }): ReactElement => { + 'use memo'; + const { colors } = useTheme(); return ( { + 'use memo'; + const alsoSendThreadToChannel = useAlsoSendThreadToChannel(); const { setAlsoSendThreadToChannel } = useMessageComposerApi(); const { showEmojiSearchbar } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/components/Toolbar/Container.tsx b/app/containers/MessageComposer/components/Toolbar/Container.tsx index 98f0a2c22ff..4ccbab19727 100644 --- a/app/containers/MessageComposer/components/Toolbar/Container.tsx +++ b/app/containers/MessageComposer/components/Toolbar/Container.tsx @@ -1,12 +1,16 @@ import React, { ReactElement } from 'react'; import { View } from 'react-native'; -export const Container = ({ children }: { children: (ReactElement | null)[] }): ReactElement => ( - - {children} - -); +export const Container = ({ children }: { children: (ReactElement | null)[] }): ReactElement => { + 'use memo'; + + return ( + + {children} + + ); +}; diff --git a/app/containers/MessageComposer/components/Toolbar/Default.tsx b/app/containers/MessageComposer/components/Toolbar/Default.tsx index aa4e3720de5..a99b202e33a 100644 --- a/app/containers/MessageComposer/components/Toolbar/Default.tsx +++ b/app/containers/MessageComposer/components/Toolbar/Default.tsx @@ -9,6 +9,8 @@ import { useRoomContext } from '../../../../views/RoomView/context'; import { useEmojiKeyboard } from '../../hooks/useEmojiKeyboard'; export const Default = (): ReactElement | null => { + 'use memo'; + const { sharing } = useRoomContext(); const { setMarkdownToolbar } = useMessageComposerApi(); const { openEmojiKeyboard } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/components/Toolbar/EmojiKeyboard.tsx b/app/containers/MessageComposer/components/Toolbar/EmojiKeyboard.tsx index 27b92f6e646..c4ee3f352b6 100644 --- a/app/containers/MessageComposer/components/Toolbar/EmojiKeyboard.tsx +++ b/app/containers/MessageComposer/components/Toolbar/EmojiKeyboard.tsx @@ -8,6 +8,8 @@ import { Gap } from '../Gap'; import { useEmojiKeyboard } from '../../hooks/useEmojiKeyboard'; export const EmojiKeyboard = (): ReactElement => { + 'use memo'; + const { closeEmojiKeyboard } = useEmojiKeyboard(); const close = async () => { diff --git a/app/containers/MessageComposer/components/Toolbar/Markdown.tsx b/app/containers/MessageComposer/components/Toolbar/Markdown.tsx index bcecfb8bba8..b3f13926cff 100644 --- a/app/containers/MessageComposer/components/Toolbar/Markdown.tsx +++ b/app/containers/MessageComposer/components/Toolbar/Markdown.tsx @@ -7,6 +7,8 @@ import { TMarkdownStyle } from '../../interfaces'; import { emitter } from '../../../../lib/methods/helpers/emitter'; export const Markdown = (): ReactElement => { + 'use memo'; + const { setMarkdownToolbar } = useMessageComposerApi(); const onPress = (style: TMarkdownStyle) => emitter.emit('addMarkdown', { style }); diff --git a/app/containers/MessageComposer/components/Toolbar/Toolbar.tsx b/app/containers/MessageComposer/components/Toolbar/Toolbar.tsx index b774c9a929d..e2dc6e1899d 100644 --- a/app/containers/MessageComposer/components/Toolbar/Toolbar.tsx +++ b/app/containers/MessageComposer/components/Toolbar/Toolbar.tsx @@ -11,6 +11,8 @@ import { CancelEdit } from '../CancelEdit'; import { useEmojiKeyboard } from '../../hooks/useEmojiKeyboard'; export const Toolbar = (): ReactElement | null => { + 'use memo'; + const focused = useFocused(); const { showEmojiKeyboard, showEmojiSearchbar } = useEmojiKeyboard(); const showMarkdownToolbar = useShowMarkdownToolbar(); diff --git a/app/containers/MessageComposer/components/Unfocused/Left.tsx b/app/containers/MessageComposer/components/Unfocused/Left.tsx index ccdd0ac52f1..506d064b4f2 100644 --- a/app/containers/MessageComposer/components/Unfocused/Left.tsx +++ b/app/containers/MessageComposer/components/Unfocused/Left.tsx @@ -8,6 +8,8 @@ import { MIN_HEIGHT } from '../../constants'; import { useRoomContext } from '../../../../views/RoomView/context'; export const Left = (): ReactElement | null => { + 'use memo'; + const { sharing } = useRoomContext(); const focused = useFocused(); const { showEmojiKeyboard, showEmojiSearchbar } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/components/Unfocused/Right.tsx b/app/containers/MessageComposer/components/Unfocused/Right.tsx index 75c798da5b6..2b497b58635 100644 --- a/app/containers/MessageComposer/components/Unfocused/Right.tsx +++ b/app/containers/MessageComposer/components/Unfocused/Right.tsx @@ -8,6 +8,8 @@ import { MIN_HEIGHT } from '../../constants'; import { CancelEdit } from '../CancelEdit'; export const Right = (): React.ReactElement | null => { + 'use memo'; + const focused = useFocused(); const { showEmojiKeyboard, showEmojiSearchbar } = useEmojiKeyboard(); diff --git a/app/containers/MessageComposer/context.tsx b/app/containers/MessageComposer/context.tsx index 1c0b10d8d2d..deb054fd5f2 100644 --- a/app/containers/MessageComposer/context.tsx +++ b/app/containers/MessageComposer/context.tsx @@ -80,6 +80,8 @@ const reducer = (state: State, action: Actions): State => { }; export const MessageComposerProvider = ({ children }: { children: ReactElement }): ReactElement => { + 'use memo'; + const [state, dispatch] = useReducer(reducer, { autocompleteParams: { text: '', type: null } } as State); diff --git a/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts b/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts index b8e1c50a7ab..5c547542366 100644 --- a/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts +++ b/app/containers/MessageComposer/hooks/useAutoSaveDraft.ts @@ -6,6 +6,8 @@ import { useRoomContext } from '../../../views/RoomView/context'; import { useFocused } from '../context'; export const useAutoSaveDraft = (text = '') => { + 'use memo'; + const route = useRoute(); const { rid, tmid, action, selectedMessages } = useRoomContext(); const focused = useFocused(); diff --git a/app/containers/MessageComposer/hooks/useCanUploadFile.ts b/app/containers/MessageComposer/hooks/useCanUploadFile.ts index 6bb403d38f9..1bda52a537c 100644 --- a/app/containers/MessageComposer/hooks/useCanUploadFile.ts +++ b/app/containers/MessageComposer/hooks/useCanUploadFile.ts @@ -4,6 +4,8 @@ import { usePermissions, getPermissionsSelector } from '../../../lib/hooks/usePe import { useAppSelector } from '../../../lib/hooks/useAppSelector'; export const useCanUploadFile = (rid?: string): boolean => { + 'use memo'; + const [uploadPermissionRedux] = useAppSelector(state => getPermissionsSelector(state, ['mobile-upload-file']), shallowEqual); const [permissionToUpload] = usePermissions(['mobile-upload-file'], rid); diff --git a/app/containers/MessageComposer/hooks/useChooseMedia.ts b/app/containers/MessageComposer/hooks/useChooseMedia.ts index 415331ac486..460cf5d1052 100644 --- a/app/containers/MessageComposer/hooks/useChooseMedia.ts +++ b/app/containers/MessageComposer/hooks/useChooseMedia.ts @@ -22,6 +22,8 @@ export const useChooseMedia = ({ tmid?: string; permissionToUpload: boolean; }) => { + 'use memo'; + const { FileUpload_MediaTypeWhiteList, FileUpload_MaxFileSize } = useAppSelector(state => state.settings); const { action, setQuotesAndText, selectedMessages, getText } = useRoomContext(); const allowList = FileUpload_MediaTypeWhiteList as string; diff --git a/app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx b/app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx index 55f5072ab4c..3193bf180bf 100644 --- a/app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx +++ b/app/containers/MessageComposer/hooks/useEmojiKeyboard.tsx @@ -20,6 +20,8 @@ const EmojiKeyboardContext = createContext({ }); export const EmojiKeyboardProvider = ({ children }: IEmojiKeyboardProvider) => { + 'use memo'; + const showEmojiPickerSharedValue = useSharedValue(false); const showEmojiSearchbarSharedValue = useSharedValue(false); @@ -34,6 +36,8 @@ const IPAD_TOOLTIP_HEIGHT_OR_HW_KEYBOARD = 70; const EMOJI_KEYBOARD_FIXED_HEIGHT = 250; const useKeyboardAnimation = () => { + 'use memo'; + const height = useSharedValue(0); useKeyboardHandler( @@ -64,6 +68,8 @@ const useKeyboardAnimation = () => { }; export const useEmojiKeyboard = () => { + 'use memo'; + const { showEmojiPickerSharedValue, showEmojiSearchbarSharedValue } = useContext(EmojiKeyboardContext); const { focus } = useContext(MessageInnerContext); const [showEmojiKeyboard, setShowEmojiKeyboard] = useState(false); diff --git a/app/containers/MessageComposer/hooks/useIOSBackSwipeHandler.ts b/app/containers/MessageComposer/hooks/useIOSBackSwipeHandler.ts index 126239a3562..3fba3eef86b 100644 --- a/app/containers/MessageComposer/hooks/useIOSBackSwipeHandler.ts +++ b/app/containers/MessageComposer/hooks/useIOSBackSwipeHandler.ts @@ -5,6 +5,8 @@ import { useNavigation } from '@react-navigation/native'; import { isIOS } from '../../../lib/methods/helpers'; const useIOSBackSwipeHandler = () => { + 'use memo'; + const navigation = useNavigation(); const iOSBackSwipe = useRef(false); diff --git a/app/containers/MessageComposer/hooks/useMessage.ts b/app/containers/MessageComposer/hooks/useMessage.ts index 87d4efebd30..2cf9dfa55ce 100644 --- a/app/containers/MessageComposer/hooks/useMessage.ts +++ b/app/containers/MessageComposer/hooks/useMessage.ts @@ -5,6 +5,8 @@ import { getMessageById } from '../../../lib/database/services/Message'; // TODO: Not reactive. Should we work on an official version? export const useMessage = (messageId: string): IMessage | undefined => { + 'use memo'; + const [message, setMessage] = useState(); useEffect(() => { const load = async () => { diff --git a/app/containers/RoomHeader/RoomHeader.tsx b/app/containers/RoomHeader/RoomHeader.tsx index d8c866c2435..a305f3aacf9 100644 --- a/app/containers/RoomHeader/RoomHeader.tsx +++ b/app/containers/RoomHeader/RoomHeader.tsx @@ -1,4 +1,4 @@ -import React, { useCallback } from 'react'; +import React from 'react'; import { StyleSheet, Text, useWindowDimensions, View } from 'react-native'; import { TouchableOpacity } from 'react-native-gesture-handler'; @@ -190,7 +190,7 @@ const Header = React.memo( ); } - const handleOnPress = useCallback(() => onPress(), []); + const handleOnPress = () => onPress(); return ( { + 'use memo'; + const { isLargeFontScale } = useResponsiveLayout(); const memoizedMessage = useMemo( () => formatLastMessage({ lastMessage, username, useRealName, showLastMessage, alert, type }), diff --git a/app/containers/SearchBox/index.tsx b/app/containers/SearchBox/index.tsx index baf6c51bdb7..549ca02873c 100644 --- a/app/containers/SearchBox/index.tsx +++ b/app/containers/SearchBox/index.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useState } from 'react'; +import React, { useState } from 'react'; import { StyleSheet, TextInputProps, View } from 'react-native'; import { useTheme } from '../../theme'; @@ -17,10 +17,10 @@ const SearchBox = ({ onChangeText, onSubmitEditing, testID }: TextInputProps): J const { colors } = useTheme(); - const internalOnChangeText = useCallback((value: string) => { + const internalOnChangeText = (value: string) => { setText(value); onChangeText?.(value); - }, []); + }; return ( diff --git a/app/containers/UIKit/Actions.tsx b/app/containers/UIKit/Actions.tsx index a23b030afe2..6debd6c57b4 100644 --- a/app/containers/UIKit/Actions.tsx +++ b/app/containers/UIKit/Actions.tsx @@ -9,13 +9,13 @@ export const Actions = ({ blockId, appId, elements, parser }: IActions) => { const [showMoreVisible, setShowMoreVisible] = useState(() => elements && elements.length > 5); const renderedElements = showMoreVisible ? elements?.slice(0, 5) : elements; - const Elements = () => ( - <>{renderedElements?.map(element => parser?.renderActions({ blockId, appId, ...element }, BlockContext.ACTION, parser))} - ); - return ( <> - + <> + {renderedElements + ? renderedElements?.map(element => parser?.renderActions({ blockId, appId, ...element }, BlockContext.ACTION, parser)) + : null} + {showMoreVisible &&