diff --git a/src/pages/workspace/WorkspacePageWithSections.tsx b/src/pages/workspace/WorkspacePageWithSections.tsx index 70198f38f18c..7fb56cada0cd 100644 --- a/src/pages/workspace/WorkspacePageWithSections.tsx +++ b/src/pages/workspace/WorkspacePageWithSections.tsx @@ -21,7 +21,6 @@ import type {Route} from '@src/ROUTES'; import ROUTES from '@src/ROUTES'; import type {Policy, ReimbursementAccount, User} from '@src/types/onyx'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -import type {PolicyRoute} from './withPolicy'; import type {WithPolicyAndFullscreenLoadingProps} from './withPolicyAndFullscreenLoading'; import withPolicyAndFullscreenLoading from './withPolicyAndFullscreenLoading'; @@ -41,9 +40,6 @@ type WorkspacePageWithSectionsProps = WithPolicyAndFullscreenLoadingProps & /** The text to display in the header */ headerText: string; - /** The route object passed to this page from the navigator */ - route: PolicyRoute; - /** Main content of the page */ children: (hasVBA: boolean, policyID: string, isUsingECard: boolean) => ReactNode; diff --git a/src/pages/workspace/travel/WorkspaceTravelNoVBAView.js b/src/pages/workspace/travel/WorkspaceTravelNoVBAView.js deleted file mode 100644 index f6892f108b52..000000000000 --- a/src/pages/workspace/travel/WorkspaceTravelNoVBAView.js +++ /dev/null @@ -1,42 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import {View} from 'react-native'; -import ConnectBankAccountButton from '@components/ConnectBankAccountButton'; -import * as Illustrations from '@components/Icon/Illustrations'; -import Section from '@components/Section'; -import Text from '@components/Text'; -import withLocalize, {withLocalizePropTypes} from '@components/withLocalize'; -import useThemeStyles from '@hooks/useThemeStyles'; - -const propTypes = { - /** The policy ID currently being configured */ - policyID: PropTypes.string.isRequired, - - ...withLocalizePropTypes, -}; - -function WorkspaceTravelNoVBAView(props) { - const styles = useThemeStyles(); - return ( - <> -
- - {props.translate('workspace.travel.noVBACopy')} - - -
- - ); -} - -WorkspaceTravelNoVBAView.propTypes = propTypes; -WorkspaceTravelNoVBAView.displayName = 'WorkspaceTravelNoVBAView'; - -export default withLocalize(WorkspaceTravelNoVBAView); diff --git a/src/pages/workspace/travel/WorkspaceTravelNoVBAView.tsx b/src/pages/workspace/travel/WorkspaceTravelNoVBAView.tsx new file mode 100644 index 000000000000..e49c328ce4b5 --- /dev/null +++ b/src/pages/workspace/travel/WorkspaceTravelNoVBAView.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import {View} from 'react-native'; +import ConnectBankAccountButton from '@components/ConnectBankAccountButton'; +import * as Illustrations from '@components/Icon/Illustrations'; +import Section from '@components/Section'; +import Text from '@components/Text'; +import useLocalize from '@hooks/useLocalize'; +import useThemeStyles from '@hooks/useThemeStyles'; + +type WorkspaceTravelNoVBAViewProps = { + /** The policy ID currently being configured */ + policyID: string; +}; + +function WorkspaceTravelNoVBAView({policyID}: WorkspaceTravelNoVBAViewProps) { + const styles = useThemeStyles(); + const {translate} = useLocalize(); + + return ( +
+ + {translate('workspace.travel.noVBACopy')} + + +
+ ); +} + +WorkspaceTravelNoVBAView.displayName = 'WorkspaceTravelNoVBAView'; + +export default WorkspaceTravelNoVBAView; diff --git a/src/pages/workspace/travel/WorkspaceTravelPage.js b/src/pages/workspace/travel/WorkspaceTravelPage.tsx similarity index 61% rename from src/pages/workspace/travel/WorkspaceTravelPage.js rename to src/pages/workspace/travel/WorkspaceTravelPage.tsx index bcb299fdc2a0..88dfe5254fcf 100644 --- a/src/pages/workspace/travel/WorkspaceTravelPage.js +++ b/src/pages/workspace/travel/WorkspaceTravelPage.tsx @@ -1,36 +1,28 @@ -import PropTypes from 'prop-types'; +import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import {View} from 'react-native'; -import withLocalize, {withLocalizePropTypes} from '@components/withLocalize'; +import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; +import type {CentralPaneNavigatorParamList} from '@libs/Navigation/types'; import WorkspacePageWithSections from '@pages/workspace/WorkspacePageWithSections'; import CONST from '@src/CONST'; +import type SCREENS from '@src/SCREENS'; import WorkspaceTravelNoVBAView from './WorkspaceTravelNoVBAView'; import WorkspaceTravelVBAView from './WorkspaceTravelVBAView'; -const propTypes = { - /** The route object passed to this page from the navigator */ - route: PropTypes.shape({ - /** Each parameter passed via the URL */ - params: PropTypes.shape({ - /** The policyID that is being configured */ - policyID: PropTypes.string.isRequired, - }).isRequired, - }).isRequired, +type WorkspaceTravelPageProps = StackScreenProps; - ...withLocalizePropTypes, -}; - -function WorkspaceTravelPage(props) { +function WorkspaceTravelPage({route}: WorkspaceTravelPageProps) { + const {translate} = useLocalize(); const styles = useThemeStyles(); const {isSmallScreenWidth} = useWindowDimensions(); return ( @@ -44,7 +36,6 @@ function WorkspaceTravelPage(props) { ); } -WorkspaceTravelPage.propTypes = propTypes; WorkspaceTravelPage.displayName = 'WorkspaceTravelPage'; -export default withLocalize(WorkspaceTravelPage); +export default WorkspaceTravelPage; diff --git a/src/pages/workspace/travel/WorkspaceTravelVBAView.js b/src/pages/workspace/travel/WorkspaceTravelVBAView.tsx similarity index 65% rename from src/pages/workspace/travel/WorkspaceTravelVBAView.js rename to src/pages/workspace/travel/WorkspaceTravelVBAView.tsx index 499d9f55fbe0..ae4002e14d4b 100644 --- a/src/pages/workspace/travel/WorkspaceTravelVBAView.js +++ b/src/pages/workspace/travel/WorkspaceTravelVBAView.tsx @@ -4,61 +4,58 @@ import * as Expensicons from '@components/Icon/Expensicons'; import * as Illustrations from '@components/Icon/Illustrations'; import Section from '@components/Section'; import Text from '@components/Text'; -import withLocalize, {withLocalizePropTypes} from '@components/withLocalize'; +import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import * as Link from '@userActions/Link'; import * as Report from '@userActions/Report'; import CONST from '@src/CONST'; -const propTypes = { - ...withLocalizePropTypes, -}; - -function WorkspaceTravelVBAView(props) { +function WorkspaceTravelVBAView() { const styles = useThemeStyles(); + const {translate} = useLocalize(); + return (
Link.openOldDotLink('domain_companycards'), icon: Expensicons.ExpensifyCard, shouldShowRightIcon: true, iconRight: Expensicons.NewWindow, - wrapperStyle: [styles.cardMenuItem], + wrapperStyle: styles.cardMenuItem, link: () => Link.buildOldDotURL('domain_companycards'), }, { - title: props.translate('workspace.travel.bookTravelWithConcierge'), + title: translate('workspace.travel.bookTravelWithConcierge'), onPress: () => { Report.navigateToConciergeChat(); }, icon: Expensicons.Concierge, shouldShowRightIcon: true, - wrapperStyle: [styles.cardMenuItem], + wrapperStyle: styles.cardMenuItem, }, { - title: props.translate('requestorStep.learnMore'), + title: translate('requestorStep.learnMore'), onPress: () => Link.openExternalLink(CONST.CONCIERGE_TRAVEL_URL), icon: Expensicons.Info, shouldShowRightIcon: true, iconRight: Expensicons.NewWindow, - wrapperStyle: [styles.cardMenuItem], + wrapperStyle: styles.cardMenuItem, link: CONST.CONCIERGE_TRAVEL_URL, }, ]} > - - {props.translate('workspace.travel.VBACopy')} + + {translate('workspace.travel.VBACopy')}
); } -WorkspaceTravelVBAView.propTypes = propTypes; WorkspaceTravelVBAView.displayName = 'WorkspaceTravelVBAView'; -export default withLocalize(WorkspaceTravelVBAView); +export default WorkspaceTravelVBAView;