Skip to content

Commit 4f74de0

Browse files
committed
Merge remote-tracking branch 'origin/main' into dew-approve-support
2 parents 74811f2 + 1e7603d commit 4f74de0

25 files changed

Lines changed: 204 additions & 205 deletions

File tree

src/components/MoneyRequestHeader.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ import type {MoneyRequestHeaderStatusBarProps} from './MoneyRequestHeaderStatusB
8282
import MoneyRequestHeaderStatusBar from './MoneyRequestHeaderStatusBar';
8383
import MoneyRequestReportTransactionsNavigation from './MoneyRequestReportView/MoneyRequestReportTransactionsNavigation';
8484
import {useSearchContext} from './Search/SearchContext';
85-
import {WideRHPContext} from './WideRHPContextProvider';
85+
import {useWideRHPState} from './WideRHPContextProvider';
8686

8787
type MoneyRequestHeaderProps = {
8888
/** The report currently being looked at */
@@ -171,7 +171,7 @@ function MoneyRequestHeader({report, parentReportAction, policy, onBackButtonPre
171171
// If the parent report is a selfDM, it should always be opened in the Inbox tab
172172
const shouldOpenParentReportInCurrentTab = !isSelfDM(parentReport);
173173

174-
const {wideRHPRouteKeys} = useContext(WideRHPContext);
174+
const {wideRHPRouteKeys} = useWideRHPState();
175175
const [network] = useOnyx(ONYXKEYS.NETWORK, {canBeMissing: true});
176176
const [quickAction] = useOnyx(ONYXKEYS.NVP_QUICK_ACTION_GLOBAL_CREATE, {canBeMissing: true});
177177
const [isSelfTourViewed = false] = useOnyx(ONYXKEYS.NVP_ONBOARDING, {canBeMissing: true, selector: hasSeenTourSelector});

src/components/MoneyRequestReportView/MoneyRequestReportTransactionList.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {useFocusEffect} from '@react-navigation/native';
22
import isEmpty from 'lodash/isEmpty';
3-
import React, {memo, useCallback, useContext, useEffect, useMemo, useState} from 'react';
3+
import React, {memo, useCallback, useEffect, useMemo, useState} from 'react';
44
import {View} from 'react-native';
55
import type {TupleToUnion} from 'type-fest';
66
import ButtonWithDropdownMenu from '@components/ButtonWithDropdownMenu';
@@ -11,7 +11,7 @@ import OfflineWithFeedback from '@components/OfflineWithFeedback';
1111
import {useSearchContext} from '@components/Search/SearchContext';
1212
import type {SortOrder} from '@components/Search/types';
1313
import Text from '@components/Text';
14-
import {WideRHPContext} from '@components/WideRHPContextProvider';
14+
import {useWideRHPActions} from '@components/WideRHPContextProvider';
1515
import useCopySelectionHelper from '@hooks/useCopySelectionHelper';
1616
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1717
import useHandleSelectionMode from '@hooks/useHandleSelectionMode';
@@ -171,7 +171,7 @@ function MoneyRequestReportTransactionList({
171171
// eslint-disable-next-line rulesdir/prefer-shouldUseNarrowLayout-instead-of-isSmallScreenWidth
172172
const {isSmallScreenWidth, isMediumScreenWidth} = useResponsiveLayout();
173173
const {shouldUseNarrowLayout} = useResponsiveLayoutOnWideRHP();
174-
const {markReportIDAsExpense} = useContext(WideRHPContext);
174+
const {markReportIDAsExpense} = useWideRHPActions();
175175
const [isModalVisible, setIsModalVisible] = useState(false);
176176
const [selectedTransactionID, setSelectedTransactionID] = useState<string>('');
177177
const {reportPendingAction} = getReportOfflinePendingActionAndErrors(report);

src/components/MoneyRequestReportView/MoneyRequestReportTransactionsNavigation.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {findFocusedRoute} from '@react-navigation/native';
2-
import React, {useCallback, useContext, useEffect, useMemo} from 'react';
2+
import React, {useCallback, useEffect, useMemo} from 'react';
33
import type {GestureResponderEvent} from 'react-native';
44
import type {OnyxCollection, OnyxEntry} from 'react-native-onyx';
55
import PrevNextButtons from '@components/PrevNextButtons';
6-
import {WideRHPContext} from '@components/WideRHPContextProvider';
6+
import {useWideRHPActions} from '@components/WideRHPContextProvider';
77
import useOnyx from '@hooks/useOnyx';
88
import {createTransactionThreadReport, setOptimisticTransactionThread} from '@libs/actions/Report';
99
import {clearActiveTransactionIDs} from '@libs/actions/TransactionThreadNavigation';
@@ -38,7 +38,7 @@ function MoneyRequestReportTransactionsNavigation({currentTransactionID, isFromR
3838
canBeMissing: true,
3939
});
4040

41-
const {markReportIDAsExpense} = useContext(WideRHPContext);
41+
const {markReportIDAsExpense} = useWideRHPActions();
4242

4343
const {prevTransactionID, nextTransactionID} = useMemo(() => {
4444
if (!transactionIDsList || transactionIDsList.length < 2) {

src/components/Navigation/TopBar.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import React, {useContext} from 'react';
1+
import React from 'react';
22
import {View} from 'react-native';
33
import type {OnyxEntry} from 'react-native-onyx';
44
import LoadingBar from '@components/LoadingBar';
55
import {PressableWithoutFeedback} from '@components/Pressable';
66
import SearchButton from '@components/Search/SearchRouter/SearchButton';
77
import SidePanelButton from '@components/SidePanel/SidePanelButton';
88
import Text from '@components/Text';
9-
import {WideRHPContext} from '@components/WideRHPContextProvider';
9+
import {useWideRHPState} from '@components/WideRHPContextProvider';
1010
import useLoadingBarVisibility from '@hooks/useLoadingBarVisibility';
1111
import useLocalize from '@hooks/useLocalize';
1212
import useOnyx from '@hooks/useOnyx';
@@ -34,7 +34,7 @@ function TopBar({breadcrumbLabel, shouldDisplaySearch = true, shouldDisplayHelpB
3434
const shouldShowLoadingBarForReports = useLoadingBarVisibility();
3535
const isAnonymousUser = isAnonymousUserUtil(session);
3636

37-
const {wideRHPRouteKeys} = useContext(WideRHPContext);
37+
const {wideRHPRouteKeys} = useWideRHPState();
3838
const isWideRHPVisible = !!wideRHPRouteKeys.length;
3939

4040
const displaySignIn = isAnonymousUser;

src/components/ReportActionItem/MoneyRequestView.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Str} from 'expensify-common';
2-
import React, {useCallback, useContext, useEffect, useMemo, useState} from 'react';
2+
import React, {useCallback, useEffect, useMemo, useState} from 'react';
33
import {View} from 'react-native';
44
import type {OnyxCollection, OnyxEntry} from 'react-native-onyx';
55
import DotIndicatorMessage from '@components/DotIndicatorMessage';
@@ -13,7 +13,7 @@ import {useSearchContext} from '@components/Search/SearchContext';
1313
import Switch from '@components/Switch';
1414
import Text from '@components/Text';
1515
import ViolationMessages from '@components/ViolationMessages';
16-
import {WideRHPContext} from '@components/WideRHPContextProvider';
16+
import {useWideRHPState} from '@components/WideRHPContextProvider';
1717
import useActiveRoute from '@hooks/useActiveRoute';
1818
import useCurrencyList from '@hooks/useCurrencyList';
1919
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
@@ -801,7 +801,7 @@ function MoneyRequestView({
801801
// In this case we want to use this value. The shouldUseNarrowLayout will always be true as this case is handled when we display ReportScreen in RHP.
802802
// eslint-disable-next-line rulesdir/prefer-shouldUseNarrowLayout-instead-of-isSmallScreenWidth
803803
const {isSmallScreenWidth} = useResponsiveLayout();
804-
const {wideRHPRouteKeys} = useContext(WideRHPContext);
804+
const {wideRHPRouteKeys} = useWideRHPState();
805805

806806
// If the view is readonly, we don't need the transactionThread dependency
807807
if ((!readonly && !transactionThreadReport?.reportID) || !transaction?.transactionID) {

src/components/Search/index.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {findFocusedRoute, useFocusEffect, useIsFocused, useNavigation} from '@react-navigation/native';
22
import * as Sentry from '@sentry/react-native';
3-
import React, {useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';
3+
import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
44
import type {NativeScrollEvent, NativeSyntheticEvent, StyleProp, ViewStyle} from 'react-native';
55
import {View} from 'react-native';
66
import type {OnyxEntry} from 'react-native-onyx';
@@ -11,7 +11,7 @@ import {ModalActions} from '@components/Modal/Global/ModalContext';
1111
import SearchTableHeader from '@components/SelectionListWithSections/SearchTableHeader';
1212
import type {ReportActionListItemType, SearchListItem, SelectionListHandle, TransactionGroupListItemType, TransactionListItemType} from '@components/SelectionListWithSections/types';
1313
import SearchRowSkeleton from '@components/Skeletons/SearchRowSkeleton';
14-
import {WideRHPContext} from '@components/WideRHPContextProvider';
14+
import {useWideRHPActions} from '@components/WideRHPContextProvider';
1515
import useArchivedReportsIdSet from '@hooks/useArchivedReportsIdSet';
1616
import useCardFeedsForDisplay from '@hooks/useCardFeedsForDisplay';
1717
import useConfirmModal from '@hooks/useConfirmModal';
@@ -222,7 +222,7 @@ function Search({
222222
const {isSmallScreenWidth, isLargeScreenWidth} = useResponsiveLayout();
223223
const navigation = useNavigation<PlatformStackNavigationProp<SearchFullscreenNavigatorParamList>>();
224224
const isFocused = useIsFocused();
225-
const {markReportIDAsExpense} = useContext(WideRHPContext);
225+
const {markReportIDAsExpense} = useWideRHPActions();
226226
const {
227227
currentSearchHash,
228228
setCurrentSearchHashAndKey,
@@ -255,7 +255,7 @@ function Search({
255255
const [customCardNames] = useOnyx(ONYXKEYS.NVP_EXPENSIFY_COMPANY_CARDS_CUSTOM_NAMES, {canBeMissing: true});
256256

257257
const isExpenseReportType = type === CONST.SEARCH.DATA_TYPES.EXPENSE_REPORT;
258-
const {markReportIDAsMultiTransactionExpense, unmarkReportIDAsMultiTransactionExpense} = useContext(WideRHPContext);
258+
const {markReportIDAsMultiTransactionExpense, unmarkReportIDAsMultiTransactionExpense} = useWideRHPActions();
259259

260260
const archivedReportsIdSet = useArchivedReportsIdSet();
261261

src/components/SelectionListWithSections/Search/TransactionGroupListExpanded.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, {useContext} from 'react';
1+
import React from 'react';
22
import {View} from 'react-native';
33
import ActivityIndicator from '@components/ActivityIndicator';
44
import Button from '@components/Button';
@@ -9,7 +9,7 @@ import SearchTableHeader from '@components/SelectionListWithSections/SearchTable
99
import type {ListItem, TransactionGroupListExpandedProps, TransactionListItemType} from '@components/SelectionListWithSections/types';
1010
import Text from '@components/Text';
1111
import TransactionItemRow from '@components/TransactionItemRow';
12-
import {WideRHPContext} from '@components/WideRHPContextProvider';
12+
import {useWideRHPActions} from '@components/WideRHPContextProvider';
1313
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1414
import useLocalize from '@hooks/useLocalize';
1515
import useOnyx from '@hooks/useOnyx';
@@ -87,7 +87,7 @@ function TransactionGroupListExpanded<TItem extends ListItem>({
8787
const taxAmountColumnSize = isTaxAmountColumnWide ? CONST.SEARCH.TABLE_COLUMN_SIZES.WIDE : CONST.SEARCH.TABLE_COLUMN_SIZES.NORMAL;
8888
const dateColumnSize = shouldShowYearForSomeTransaction ? CONST.SEARCH.TABLE_COLUMN_SIZES.WIDE : CONST.SEARCH.TABLE_COLUMN_SIZES.NORMAL;
8989

90-
const {markReportIDAsExpense} = useContext(WideRHPContext);
90+
const {markReportIDAsExpense} = useWideRHPActions();
9191
const openReportInRHP = (transactionItem: TransactionListItemType) => {
9292
const backTo = Navigation.getActiveRoute();
9393
const reportID = getReportIDForTransaction(transactionItem, transactionItem?.reportAction?.childReportID);

src/components/SidePanel/SidePanelModal/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {isRHPVisibleSelector} from '@selectors/Modal';
2-
import React, {useContext, useEffect} from 'react';
2+
import React, {useEffect} from 'react';
33
// eslint-disable-next-line no-restricted-imports
44
import {Animated, View} from 'react-native';
55
// @ts-expect-error This is a workaround to display SidePanel on top of everything,
@@ -8,7 +8,7 @@ import ModalPortal from 'react-native-web/dist/exports/Modal/ModalPortal';
88
import ColorSchemeWrapper from '@components/ColorSchemeWrapper';
99
import FocusTrapForModal from '@components/FocusTrap/FocusTrapForModal';
1010
import SidePanelOverlay from '@components/SidePanel/SidePanelOverlay';
11-
import {WideRHPContext} from '@components/WideRHPContextProvider';
11+
import {useWideRHPState} from '@components/WideRHPContextProvider';
1212
import useKeyboardShortcut from '@hooks/useKeyboardShortcut';
1313
import useOnyx from '@hooks/useOnyx';
1414
import useResponsiveLayout from '@hooks/useResponsiveLayout';
@@ -27,7 +27,7 @@ function SidePanelModal({children, sidePanelTranslateX, closeSidePanel, shouldHi
2727
const [isRHPVisible = false] = useOnyx(ONYXKEYS.MODAL, {selector: isRHPVisibleSelector, canBeMissing: true});
2828
const uniqueModalId = ComposerFocusManager.getId();
2929

30-
const {wideRHPRouteKeys, isWideRHPFocused, superWideRHPRouteKeys, isSuperWideRHPFocused} = useContext(WideRHPContext);
30+
const {wideRHPRouteKeys, isWideRHPFocused, superWideRHPRouteKeys, isSuperWideRHPFocused} = useWideRHPState();
3131

3232
const shouldOverlayBeVisible = (!!wideRHPRouteKeys.length && isWideRHPFocused) || (!!superWideRHPRouteKeys.length && isSuperWideRHPFocused) || !isRHPVisible;
3333

src/components/ValidateCodeActionModal/ValidateCodeForm/BaseValidateCodeForm.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {useFocusEffect} from '@react-navigation/native';
22
import type {ForwardedRef} from 'react';
3-
import React, {useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react';
3+
import React, {useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react';
44
import {View} from 'react-native';
55
import type {StyleProp, ViewStyle} from 'react-native';
66
import Button from '@components/Button';
@@ -12,7 +12,7 @@ import PressableWithFeedback from '@components/Pressable/PressableWithFeedback';
1212
import Text from '@components/Text';
1313
import ValidateCodeCountdown from '@components/ValidateCodeCountdown';
1414
import type {ValidateCodeCountdownHandle} from '@components/ValidateCodeCountdown/types';
15-
import {WideRHPContext} from '@components/WideRHPContextProvider';
15+
import {useWideRHPState} from '@components/WideRHPContextProvider';
1616
import useLocalize from '@hooks/useLocalize';
1717
import useNetwork from '@hooks/useNetwork';
1818
import useOnyx from '@hooks/useOnyx';
@@ -114,7 +114,7 @@ function BaseValidateCodeForm({
114114
}: ValidateCodeFormProps) {
115115
const {translate} = useLocalize();
116116
const {isOffline} = useNetwork();
117-
const {wideRHPRouteKeys} = useContext(WideRHPContext);
117+
const {wideRHPRouteKeys} = useWideRHPState();
118118
const theme = useTheme();
119119
const styles = useThemeStyles();
120120
const StyleUtils = useStyleUtils();
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,30 @@
1-
import type {WideRHPContextType} from './types';
1+
import type {WideRHPActionsContextType, WideRHPStateContextType} from './types';
22

3-
const defaultWideRHPContextValue: WideRHPContextType = {
3+
const defaultWideRHPStateContextValue: WideRHPStateContextType = {
44
wideRHPRouteKeys: [],
5+
superWideRHPRouteKeys: [],
56
shouldRenderSecondaryOverlayForWideRHP: false,
67
shouldRenderSecondaryOverlayForRHPOnWideRHP: false,
78
shouldRenderSecondaryOverlayForRHPOnSuperWideRHP: false,
9+
shouldRenderTertiaryOverlay: false,
10+
isWideRHPFocused: false,
11+
isSuperWideRHPFocused: false,
12+
};
13+
14+
const defaultWideRHPActionsContextValue: WideRHPActionsContextType = {
815
showWideRHPVersion: () => {},
16+
showSuperWideRHPVersion: () => {},
917
removeWideRHPRouteKey: () => {},
18+
removeSuperWideRHPRouteKey: () => {},
1019
markReportIDAsExpense: () => {},
1120
markReportIDAsMultiTransactionExpense: () => {},
1221
unmarkReportIDAsMultiTransactionExpense: () => {},
1322
isReportIDMarkedAsExpense: () => false,
1423
isReportIDMarkedAsMultiTransactionExpense: () => false,
15-
isWideRHPFocused: false,
16-
isSuperWideRHPFocused: false,
17-
shouldRenderTertiaryOverlay: false,
18-
superWideRHPRouteKeys: [],
19-
showSuperWideRHPVersion: () => {},
20-
removeSuperWideRHPRouteKey: () => {},
2124
syncRHPKeys: () => {},
2225
clearWideRHPKeys: () => {},
2326
setIsWideRHPClosing: () => {},
2427
setIsSuperWideRHPClosing: () => {},
2528
};
2629

27-
export default defaultWideRHPContextValue;
30+
export {defaultWideRHPStateContextValue, defaultWideRHPActionsContextValue};

0 commit comments

Comments
 (0)