From c2e4b5d53e47d98e3ae007562605000e03a1c2ea Mon Sep 17 00:00:00 2001 From: gijoe0295 Date: Sat, 16 Nov 2024 04:58:22 +0700 Subject: [PATCH 01/23] update hold expense educational modal --- src/SCREENS.ts | 1 - src/components/HoldMenuSectionList.tsx | 15 +-- .../ProcessMoneyRequestHoldMenu.tsx | 108 ++++++++++-------- .../FeatureTrainingModalNavigator.tsx | 5 + src/libs/Navigation/linkingConfig/config.ts | 6 +- src/libs/Navigation/types.ts | 6 +- src/pages/ProcessMoneyRequestHoldPage.tsx | 54 +++------ 7 files changed, 86 insertions(+), 109 deletions(-) diff --git a/src/SCREENS.ts b/src/SCREENS.ts index 81fc08775356c..69f6204ce6e7d 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -169,7 +169,6 @@ const SCREENS = { ROOM_MEMBER_DETAILS: 'RoomMembers_Details', ROOM_INVITE: 'RoomInvite', REFERRAL: 'Referral', - PROCESS_MONEY_REQUEST_HOLD: 'ProcessMoneyRequestHold', TRANSACTION_DUPLICATE: 'TransactionDuplicate', TRAVEL: 'Travel', SEARCH_REPORT: 'SearchReport', diff --git a/src/components/HoldMenuSectionList.tsx b/src/components/HoldMenuSectionList.tsx index 4ffdfa1bd60e9..5300cd15ce6a8 100644 --- a/src/components/HoldMenuSectionList.tsx +++ b/src/components/HoldMenuSectionList.tsx @@ -14,9 +14,6 @@ type HoldMenuSection = { /** The icon supplied with the section */ icon: React.FC | ImageSourcePropType; - /** Translation key for the title */ - titleTranslationKey: TranslationPaths; - /** Translation key for the description */ descriptionTranslationKey: TranslationPaths; }; @@ -26,19 +23,12 @@ function HoldMenuSectionList() { const styles = useThemeStyles(); const holdMenuSections: HoldMenuSection[] = [ - { - icon: Illustrations.Hourglass, - titleTranslationKey: 'iou.whatIsHoldTitle', - descriptionTranslationKey: 'iou.whatIsHoldExplain', - }, { icon: Illustrations.CommentBubbles, - titleTranslationKey: 'iou.holdIsTemporaryTitle', descriptionTranslationKey: 'iou.holdIsTemporaryExplain', }, { icon: Illustrations.TrashCan, - titleTranslationKey: 'iou.deleteHoldTitle', descriptionTranslationKey: 'iou.deleteHoldExplain', }, ]; @@ -49,7 +39,7 @@ function HoldMenuSectionList() { - {translate(section.titleTranslationKey)} - {translate(section.descriptionTranslationKey)} + {translate(section.descriptionTranslationKey)} ))} diff --git a/src/components/ProcessMoneyRequestHoldMenu.tsx b/src/components/ProcessMoneyRequestHoldMenu.tsx index bb76ea0290f39..312d6f961d2fc 100644 --- a/src/components/ProcessMoneyRequestHoldMenu.tsx +++ b/src/components/ProcessMoneyRequestHoldMenu.tsx @@ -1,16 +1,21 @@ -import {useNavigation} from '@react-navigation/native'; -import React, {useEffect, useRef} from 'react'; +import React from 'react'; import {View} from 'react-native'; import useLocalize from '@hooks/useLocalize'; +import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; -import type AnchorAlignment from '@src/types/utils/AnchorAlignment'; +import variables from '@styles/variables'; +import CONST from '@src/CONST'; import Button from './Button'; import HoldMenuSectionList from './HoldMenuSectionList'; -import type {PopoverAnchorPosition} from './Modal/types'; -import Popover from './Popover'; +import Lottie from './Lottie'; +import DotLottieAnimations from './LottieAnimations'; +import Modal from './Modal'; +import SafeAreaConsumer from './SafeAreaConsumer'; import Text from './Text'; import TextPill from './TextPill'; +const MODAL_PADDING = variables.spacing2; + type ProcessMoneyRequestHoldMenuProps = { /** Whether the content is visible */ isVisible: boolean; @@ -20,53 +25,64 @@ type ProcessMoneyRequestHoldMenuProps = { /** Method to trigger when pressing confirm button */ onConfirm: () => void; - - /** The anchor position of the popover menu */ - anchorPosition?: PopoverAnchorPosition; - - /** The anchor alignment of the popover menu */ - anchorAlignment?: AnchorAlignment; }; -function ProcessMoneyRequestHoldMenu({isVisible, onClose, onConfirm, anchorPosition, anchorAlignment}: ProcessMoneyRequestHoldMenuProps) { +function ProcessMoneyRequestHoldMenu({isVisible, onClose, onConfirm}: ProcessMoneyRequestHoldMenuProps) { + const {onboardingIsMediumOrLargerScreenWidth} = useResponsiveLayout(); const {translate} = useLocalize(); const styles = useThemeStyles(); - const popoverRef = useRef(null); - const navigation = useNavigation(); - - useEffect(() => { - const unsub = navigation.addListener('beforeRemove', () => { - onClose(); - }); - return unsub; - }, [navigation, onClose]); return ( - - - - {translate('iou.holdEducationalTitle')} - {translate('violations.hold')} - - -