From a4994c91d111e38dfb97511b744e0ffd9b1b89d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Mon, 8 Jul 2024 11:39:38 +0200 Subject: [PATCH 01/11] Bump react-native-live-markdown to 1.101 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index abc223a50b38..0f052a1780fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.88", + "@expensify/react-native-live-markdown": "0.1.101", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", @@ -3783,9 +3783,9 @@ } }, "node_modules/@expensify/react-native-live-markdown": { - "version": "0.1.88", - "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.88.tgz", - "integrity": "sha512-78X5ACV+OL+aL6pfJAXyHkNuMGUc4Rheo4qLkIwLpmUIAiAxmY0B2lch5XHSNGf1a5ofvVbdQ6kl84+4E6DwlQ==", + "version": "0.1.101", + "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.101.tgz", + "integrity": "sha512-59mHvAl2R7OBiRokrU/nDpwqb6+b7XcEzAp8rHAaGjpaa9Et+ddpXMjHB7UWzf3QRfChSJddKa0pK24r8C3pMQ==", "workspaces": [ "parser", "example", diff --git a/package.json b/package.json index bc7306ee3782..d9019535a862 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.88", + "@expensify/react-native-live-markdown": "0.1.101", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", From 90d183f0d8306cb109a14479b71c4cdfeb6d3f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Mon, 8 Jul 2024 11:40:29 +0200 Subject: [PATCH 02/11] Fix bug with doubling pasted text in main composer --- ...ensify+react-native-live-markdown+0.1.101.patch | 14 ++++++++++++++ src/hooks/useHtmlPaste/index.ts | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 patches/@expensify+react-native-live-markdown+0.1.101.patch diff --git a/patches/@expensify+react-native-live-markdown+0.1.101.patch b/patches/@expensify+react-native-live-markdown+0.1.101.patch new file mode 100644 index 000000000000..199f28a081a3 --- /dev/null +++ b/patches/@expensify+react-native-live-markdown+0.1.101.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/@expensify/react-native-live-markdown/lib/module/MarkdownTextInput.web.js b/node_modules/@expensify/react-native-live-markdown/lib/module/MarkdownTextInput.web.js +index f218295..8bee3ff 100644 +--- a/node_modules/@expensify/react-native-live-markdown/lib/module/MarkdownTextInput.web.js ++++ b/node_modules/@expensify/react-native-live-markdown/lib/module/MarkdownTextInput.web.js +@@ -396,6 +396,9 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({ + }, [onClick, updateSelection]); + const handlePaste = useCallback(e => { + pasteRef.current = true; ++ if(e.isDefaultPrevented()){ ++ return; ++ } + e.preventDefault(); + const clipboardData = e.clipboardData; + const text = clipboardData.getData('text/plain'); diff --git a/src/hooks/useHtmlPaste/index.ts b/src/hooks/useHtmlPaste/index.ts index 4705a170c3bd..d603cdce01ea 100644 --- a/src/hooks/useHtmlPaste/index.ts +++ b/src/hooks/useHtmlPaste/index.ts @@ -146,7 +146,7 @@ const useHtmlPaste: UseHtmlPaste = (textInputRef, preHtmlPasteCallback, removeLi unsubscribeBlur = navigation.addListener('blur', () => document.removeEventListener('paste', handlePaste)); } - document.addEventListener('paste', handlePaste); + document.addEventListener('paste', handlePaste, true); return () => { if (removeListenerOnScreenBlur) { From 59bab183fe1037f760e1e4c3ef58ea508607ec0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Mon, 8 Jul 2024 12:11:04 +0200 Subject: [PATCH 03/11] Fix removing event listener --- src/hooks/useHtmlPaste/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hooks/useHtmlPaste/index.ts b/src/hooks/useHtmlPaste/index.ts index d603cdce01ea..f4a4923270c5 100644 --- a/src/hooks/useHtmlPaste/index.ts +++ b/src/hooks/useHtmlPaste/index.ts @@ -153,7 +153,7 @@ const useHtmlPaste: UseHtmlPaste = (textInputRef, preHtmlPasteCallback, removeLi unsubscribeFocus(); unsubscribeBlur(); } - document.removeEventListener('paste', handlePaste); + document.removeEventListener('paste', handlePaste, true); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); From 816ec328d4fb1476d97b9a9c5b548900c87f58a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Mon, 8 Jul 2024 14:22:30 +0200 Subject: [PATCH 04/11] Fix event dispatching --- src/hooks/useHtmlPaste/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/hooks/useHtmlPaste/index.ts b/src/hooks/useHtmlPaste/index.ts index f4a4923270c5..03a2ea7c39e8 100644 --- a/src/hooks/useHtmlPaste/index.ts +++ b/src/hooks/useHtmlPaste/index.ts @@ -1,5 +1,6 @@ import {useNavigation} from '@react-navigation/native'; import {useCallback, useEffect} from 'react'; +import type {ClipboardEvent as PasteEvent} from 'react'; import {parseHtmlToMarkdown} from '@libs/OnyxAwareParser'; import type UseHtmlPaste from './types'; @@ -20,8 +21,10 @@ const insertAtCaret = (target: HTMLElement, text: string) => { range.setEnd(node, node.length); selection.setBaseAndExtent(range.startContainer, range.startOffset, range.endContainer, range.endOffset); - // Dispatch paste event to simulate real browser behavior - target.dispatchEvent(new Event('paste', {bubbles: true})); + // Dispatch paste event to make Markdown Input properly set cursor position + const pasteEvent = new ClipboardEvent('paste', {bubbles: true, cancelable: true}); + (pasteEvent as unknown as PasteEvent).isDefaultPrevented = () => false; + target.dispatchEvent(pasteEvent); // Dispatch input event to trigger Markdown Input to parse the new text target.dispatchEvent(new Event('input', {bubbles: true})); } else { From ceacfb2bafb78c059b6236a2a9e13ab0e1991a22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Mon, 8 Jul 2024 15:20:31 +0200 Subject: [PATCH 05/11] Bump react-native-live-markdown to 1.102 --- package-lock.json | 8 ++++---- package.json | 2 +- ...ensify+react-native-live-markdown+0.1.101.patch | 14 -------------- 3 files changed, 5 insertions(+), 19 deletions(-) delete mode 100644 patches/@expensify+react-native-live-markdown+0.1.101.patch diff --git a/package-lock.json b/package-lock.json index 0f052a1780fb..b81ab9a97197 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.101", + "@expensify/react-native-live-markdown": "0.1.102", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", @@ -3783,9 +3783,9 @@ } }, "node_modules/@expensify/react-native-live-markdown": { - "version": "0.1.101", - "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.101.tgz", - "integrity": "sha512-59mHvAl2R7OBiRokrU/nDpwqb6+b7XcEzAp8rHAaGjpaa9Et+ddpXMjHB7UWzf3QRfChSJddKa0pK24r8C3pMQ==", + "version": "0.1.102", + "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.102.tgz", + "integrity": "sha512-bytLv8/lziIHIh3zU8uHi+IsJv0h42c1A1J8MnebTd5d73tFCcN+abVFP4ETHx7MFPYftsdQHrNq83fA4OhS5w==", "workspaces": [ "parser", "example", diff --git a/package.json b/package.json index d9019535a862..372425bb5d2d 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.101", + "@expensify/react-native-live-markdown": "0.1.102", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", diff --git a/patches/@expensify+react-native-live-markdown+0.1.101.patch b/patches/@expensify+react-native-live-markdown+0.1.101.patch deleted file mode 100644 index 199f28a081a3..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.101.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/lib/module/MarkdownTextInput.web.js b/node_modules/@expensify/react-native-live-markdown/lib/module/MarkdownTextInput.web.js -index f218295..8bee3ff 100644 ---- a/node_modules/@expensify/react-native-live-markdown/lib/module/MarkdownTextInput.web.js -+++ b/node_modules/@expensify/react-native-live-markdown/lib/module/MarkdownTextInput.web.js -@@ -396,6 +396,9 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({ - }, [onClick, updateSelection]); - const handlePaste = useCallback(e => { - pasteRef.current = true; -+ if(e.isDefaultPrevented()){ -+ return; -+ } - e.preventDefault(); - const clipboardData = e.clipboardData; - const text = clipboardData.getData('text/plain'); From e61a10cece16c28c3250b8f44950bfa2186cdaad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Mon, 8 Jul 2024 15:40:34 +0200 Subject: [PATCH 06/11] Update Podfile --- ios/Podfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index a5ffdcb4b63c..82606a568338 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1871,7 +1871,7 @@ PODS: - RNGoogleSignin (10.0.1): - GoogleSignIn (~> 7.0) - React-Core - - RNLiveMarkdown (0.1.88): + - RNLiveMarkdown (0.1.102): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -1889,9 +1889,9 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNLiveMarkdown/common (= 0.1.88) + - RNLiveMarkdown/common (= 0.1.102) - Yoga - - RNLiveMarkdown/common (0.1.88): + - RNLiveMarkdown/common (0.1.102): - glog - hermes-engine - RCT-Folly (= 2022.05.16.00) @@ -2614,7 +2614,7 @@ SPEC CHECKSUMS: RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 RNGestureHandler: 74b7b3d06d667ba0bbf41da7718f2607ae0dfe8f RNGoogleSignin: ccaa4a81582cf713eea562c5dd9dc1961a715fd0 - RNLiveMarkdown: e33d2c97863d5480f8f4b45f8b25f801cc43c7f5 + RNLiveMarkdown: 2bde1671fc460def563d129a9fee35757a7799dc RNLocalize: d4b8af4e442d4bcca54e68fc687a2129b4d71a81 rnmapbox-maps: df8fe93dbd251f25022f4023d31bc04160d4d65c RNPermissions: 0b61d30d21acbeafe25baaa47d9bae40a0c65216 @@ -2631,7 +2631,7 @@ SPEC CHECKSUMS: SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 Turf: 13d1a92d969ca0311bbc26e8356cca178ce95da2 VisionCamera: 1394a316c7add37e619c48d7aa40b38b954bf055 - Yoga: 64cd2a583ead952b0315d5135bf39e053ae9be70 + Yoga: 1b901a6d6eeba4e8a2e8f308f708691cdb5db312 PODFILE CHECKSUM: d5e281e5370cb0211a104efd90eb5fa7af936e14 From 627ad591767e9a8ddd1c8a6e110b9bf1c4637bf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Mon, 8 Jul 2024 15:57:57 +0200 Subject: [PATCH 07/11] Bump expensify-common to 2.0.35 --- package-lock.json | 18 ++++++++---------- package.json | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index b81ab9a97197..8bb3deda6ca7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "date-fns-tz": "^2.0.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "2.0.19", + "expensify-common": "2.0.35", "expo": "^50.0.3", "expo-av": "~13.10.4", "expo-image": "1.11.0", @@ -25973,9 +25973,9 @@ } }, "node_modules/expensify-common": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/expensify-common/-/expensify-common-2.0.19.tgz", - "integrity": "sha512-GdWlYiHOAapy/jxjcvL9NKGOofhoEuKIwvJNGNVHbDXcA+0NxVCNYrHt1yrLnVcE4KtK6PGT6fQ2Lp8NTCoA+g==", + "version": "2.0.35", + "resolved": "https://registry.npmjs.org/expensify-common/-/expensify-common-2.0.35.tgz", + "integrity": "sha512-5Q4DK5pJIyPd3FmHrargm9fxiOMBdDLMb8rhwa2jN35DL9NiYX9mOTWc327PnjaFO07AeR6wNj8+BVgqOxqMGg==", "dependencies": { "awesome-phonenumber": "^5.4.0", "classnames": "2.5.0", @@ -25987,7 +25987,7 @@ "prop-types": "15.8.1", "react": "16.12.0", "react-dom": "16.12.0", - "semver": "^7.6.0", + "semver": "^7.6.2", "simply-deferred": "git+https://github.com/Expensify/simply-deferred.git#77a08a95754660c7bd6e0b6979fdf84e8e831bf5", "ua-parser-js": "^1.0.37" } @@ -39380,11 +39380,9 @@ } }, "node_modules/semver": { - "version": "7.6.0", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "bin": { "semver": "bin/semver.js" }, diff --git a/package.json b/package.json index 372425bb5d2d..6285c2ff077e 100644 --- a/package.json +++ b/package.json @@ -108,7 +108,7 @@ "date-fns-tz": "^2.0.0", "dom-serializer": "^0.2.2", "domhandler": "^4.3.0", - "expensify-common": "2.0.19", + "expensify-common": "2.0.35", "expo": "^50.0.3", "expo-av": "~13.10.4", "expo-image": "1.11.0", From 4308a338aec1a2e44d1692647ecc42ae0d85ac38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Mon, 8 Jul 2024 15:58:28 +0200 Subject: [PATCH 08/11] Remove LM patch --- ...xpensify+react-native-live-markdown+0.1.85.patch | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 patches/@expensify+react-native-live-markdown+0.1.85.patch diff --git a/patches/@expensify+react-native-live-markdown+0.1.85.patch b/patches/@expensify+react-native-live-markdown+0.1.85.patch deleted file mode 100644 index f745786a088e..000000000000 --- a/patches/@expensify+react-native-live-markdown+0.1.85.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/node_modules/@expensify/react-native-live-markdown/lib/module/web/cursorUtils.js b/node_modules/@expensify/react-native-live-markdown/lib/module/web/cursorUtils.js -index e975fb2..6a4b510 100644 ---- a/node_modules/@expensify/react-native-live-markdown/lib/module/web/cursorUtils.js -+++ b/node_modules/@expensify/react-native-live-markdown/lib/module/web/cursorUtils.js -@@ -53,7 +53,7 @@ function setCursorPosition(target, start, end = null) { - // 3. Caret at the end of whole input, when pressing enter - // 4. All other placements - if (prevChar === '\n' && prevTextLength !== undefined && prevTextLength < textCharacters.length) { -- if (nextChar !== '\n') { -+ if (nextChar !== '\n' && i !== n - 1 && nextChar) { - range.setStart(textNodes[i + 1], 0); - } else if (i !== textNodes.length - 1) { - range.setStart(textNodes[i], 1); From 13dafac00b53fb8b6596109b38e75f4f6dc5686f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Tue, 9 Jul 2024 08:24:06 +0200 Subject: [PATCH 09/11] Fix double pasting after switching chats --- src/hooks/useHtmlPaste/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hooks/useHtmlPaste/index.ts b/src/hooks/useHtmlPaste/index.ts index 03a2ea7c39e8..8f4841f81427 100644 --- a/src/hooks/useHtmlPaste/index.ts +++ b/src/hooks/useHtmlPaste/index.ts @@ -156,7 +156,7 @@ const useHtmlPaste: UseHtmlPaste = (textInputRef, preHtmlPasteCallback, removeLi unsubscribeFocus(); unsubscribeBlur(); } - document.removeEventListener('paste', handlePaste, true); + document.removeEventListener('paste', handlePaste); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); From b56ee4cb1102120faf43c54d488b2bbf3e9198d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Tue, 9 Jul 2024 13:58:40 +0200 Subject: [PATCH 10/11] Bump react-native-live-markdown to 1.103 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89f266f002e4..975e7533bf04 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.102", + "@expensify/react-native-live-markdown": "0.1.103", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", @@ -3784,9 +3784,9 @@ } }, "node_modules/@expensify/react-native-live-markdown": { - "version": "0.1.102", - "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.102.tgz", - "integrity": "sha512-bytLv8/lziIHIh3zU8uHi+IsJv0h42c1A1J8MnebTd5d73tFCcN+abVFP4ETHx7MFPYftsdQHrNq83fA4OhS5w==", + "version": "0.1.103", + "resolved": "https://registry.npmjs.org/@expensify/react-native-live-markdown/-/react-native-live-markdown-0.1.103.tgz", + "integrity": "sha512-w9jQoxBE9LghfL8UdYbG+8A+CApmER/XMH8N7/bINn7w57+FnnBa5ckPWx6/UYX7OYsmYxSaHJLQkJEXYlDRZg==", "workspaces": [ "parser", "example", diff --git a/package.json b/package.json index e7954096cf5f..afab90d31674 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@dotlottie/react-player": "^1.6.3", - "@expensify/react-native-live-markdown": "0.1.102", + "@expensify/react-native-live-markdown": "0.1.103", "@expo/metro-runtime": "~3.1.1", "@formatjs/intl-datetimeformat": "^6.10.0", "@formatjs/intl-listformat": "^7.2.2", From d860cbed8f036e0d403794bacb5aea7e8126fb4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Ska=C5=82ka?= Date: Thu, 11 Jul 2024 10:56:46 +0200 Subject: [PATCH 11/11] Fix paste event removal on focus/blur --- src/hooks/useHtmlPaste/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/hooks/useHtmlPaste/index.ts b/src/hooks/useHtmlPaste/index.ts index 8e1b57f34a98..022d6178877d 100644 --- a/src/hooks/useHtmlPaste/index.ts +++ b/src/hooks/useHtmlPaste/index.ts @@ -145,8 +145,8 @@ const useHtmlPaste: UseHtmlPaste = (textInputRef, preHtmlPasteCallback, removeLi let unsubscribeFocus: () => void; let unsubscribeBlur: () => void; if (removeListenerOnScreenBlur) { - unsubscribeFocus = navigation.addListener('focus', () => document.addEventListener('paste', handlePaste)); - unsubscribeBlur = navigation.addListener('blur', () => document.removeEventListener('paste', handlePaste)); + unsubscribeFocus = navigation.addListener('focus', () => document.addEventListener('paste', handlePaste, true)); + unsubscribeBlur = navigation.addListener('blur', () => document.removeEventListener('paste', handlePaste, true)); } document.addEventListener('paste', handlePaste, true); @@ -156,7 +156,7 @@ const useHtmlPaste: UseHtmlPaste = (textInputRef, preHtmlPasteCallback, removeLi unsubscribeFocus(); unsubscribeBlur(); } - document.removeEventListener('paste', handlePaste); + document.removeEventListener('paste', handlePaste, true); }; // eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps }, []);