-
Notifications
You must be signed in to change notification settings - Fork 3k
/
Copy pathWorkspaceTaxesSettingsForeignCurrency.tsx
74 lines (66 loc) · 3.22 KB
/
WorkspaceTaxesSettingsForeignCurrency.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import type {StackScreenProps} from '@react-navigation/stack';
import React from 'react';
import {View} from 'react-native';
import HeaderWithBackButton from '@components/HeaderWithBackButton';
import ScreenWrapper from '@components/ScreenWrapper';
import TaxPicker from '@components/TaxPicker';
import useLocalize from '@hooks/useLocalize';
import useThemeStyles from '@hooks/useThemeStyles';
import Navigation from '@libs/Navigation/Navigation';
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
import type * as OptionsListUtils from '@libs/OptionsListUtils';
import * as TransactionUtils from '@libs/TransactionUtils';
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading';
import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading';
import {setForeignCurrencyDefault} from '@userActions/Policy/Policy';
import CONST from '@src/CONST';
import ROUTES from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';
type WorkspaceTaxesSettingsForeignCurrencyProps = WithPolicyAndFullscreenLoadingProps &
StackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.TAXES_SETTINGS_FOREIGN_CURRENCY_DEFAULT>;
function WorkspaceTaxesSettingsForeignCurrency({
route: {
params: {policyID},
},
policy,
}: WorkspaceTaxesSettingsForeignCurrencyProps) {
const {translate} = useLocalize();
const styles = useThemeStyles();
const foreignTaxDefault = policy?.taxRates?.foreignTaxDefault ?? '';
const selectedTaxRate = TransactionUtils.getWorkspaceTaxesSettingsName(policy, foreignTaxDefault);
const submit = (taxes: OptionsListUtils.TaxRatesOption) => {
setForeignCurrencyDefault(policyID, taxes.code ?? '');
Navigation.goBack(ROUTES.WORKSPACE_TAXES_SETTINGS.getRoute(policyID));
};
return (
<AccessOrNotFoundWrapper
accessVariants={[CONST.POLICY.ACCESS_VARIANTS.ADMIN, CONST.POLICY.ACCESS_VARIANTS.PAID]}
policyID={policyID}
featureName={CONST.POLICY.MORE_FEATURES.ARE_TAXES_ENABLED}
>
<ScreenWrapper
includeSafeAreaPaddingBottom={false}
shouldEnableMaxHeight
testID={WorkspaceTaxesSettingsForeignCurrency.displayName}
style={styles.defaultModalContainer}
>
{({insets}) => (
<>
<HeaderWithBackButton title={translate('workspace.taxes.foreignDefault')} />
<View style={[styles.mb4, styles.flex1]}>
<TaxPicker
selectedTaxRate={selectedTaxRate}
policyID={policyID}
insets={insets}
onSubmit={submit}
/>
</View>
</>
)}
</ScreenWrapper>
</AccessOrNotFoundWrapper>
);
}
WorkspaceTaxesSettingsForeignCurrency.displayName = 'WorkspaceTaxesSettingsForeignCurrency';
export default withPolicyAndFullscreenLoading(WorkspaceTaxesSettingsForeignCurrency);