From efba21a98604da17d2b598f6f40846eaa640ba2f Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Wed, 26 Mar 2025 23:49:19 +0700 Subject: [PATCH 1/2] App crashes after viewing card transactions and reporting card fraud --- src/components/Modal/BaseModal.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/components/Modal/BaseModal.tsx b/src/components/Modal/BaseModal.tsx index c7dde5740df2..6c9f830174b9 100644 --- a/src/components/Modal/BaseModal.tsx +++ b/src/components/Modal/BaseModal.tsx @@ -97,6 +97,8 @@ function BaseModal( const safeAreaInsets = useSafeAreaInsets(); const isVisibleRef = useRef(isVisible); + const hideModalCallbackRef = useRef<((callHideCallback: boolean) => void)>(); + const wasVisible = usePrevious(isVisible); const uniqueModalId = useMemo(() => modalId ?? ComposerFocusManager.getId(), [modalId]); @@ -144,13 +146,17 @@ function BaseModal( }; }, [isVisible, wasVisible, onClose, type]); + useEffect(() => { + hideModalCallbackRef.current = hideModal; + }, [hideModal]); + useEffect( () => () => { // Only trigger onClose and setModalVisibility if the modal is unmounting while visible. if (!isVisibleRef.current) { return; } - hideModal(true); + hideModalCallbackRef.current?.(true); }, // eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps [], From 515276a23de8d24e47eb53dec47ec97bfa273b37 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Thu, 27 Mar 2025 00:00:29 +0700 Subject: [PATCH 2/2] prettier --- src/components/Modal/BaseModal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Modal/BaseModal.tsx b/src/components/Modal/BaseModal.tsx index 6c9f830174b9..6ead97c563c6 100644 --- a/src/components/Modal/BaseModal.tsx +++ b/src/components/Modal/BaseModal.tsx @@ -97,7 +97,7 @@ function BaseModal( const safeAreaInsets = useSafeAreaInsets(); const isVisibleRef = useRef(isVisible); - const hideModalCallbackRef = useRef<((callHideCallback: boolean) => void)>(); + const hideModalCallbackRef = useRef<(callHideCallback: boolean) => void>(); const wasVisible = usePrevious(isVisible);