diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index 380ede9dfec5..4e8a7dde6c27 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -163,7 +163,10 @@ type SettingsNavigatorParamList = { [SCREENS.SETTINGS.PROFILE.STATUS_CLEAR_AFTER_DATE]: undefined; [SCREENS.SETTINGS.PROFILE.STATUS_CLEAR_AFTER_TIME]: undefined; [SCREENS.WORKSPACE.CURRENCY]: undefined; - [SCREENS.WORKSPACE.ADDRESS]: undefined; + [SCREENS.WORKSPACE.ADDRESS]: { + policyID: string; + country?: Country | ''; + }; [SCREENS.WORKSPACE.NAME]: undefined; [SCREENS.WORKSPACE.DESCRIPTION]: undefined; [SCREENS.WORKSPACE.SHARE]: undefined; diff --git a/src/pages/workspace/WorkspaceProfileAddressPage.tsx b/src/pages/workspace/WorkspaceProfileAddressPage.tsx index 175a3611ef57..b73a57c30223 100644 --- a/src/pages/workspace/WorkspaceProfileAddressPage.tsx +++ b/src/pages/workspace/WorkspaceProfileAddressPage.tsx @@ -9,6 +9,7 @@ import Navigation from '@libs/Navigation/Navigation'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; import {updateAddress} from '@userActions/Policy'; import type {Country} from '@src/CONST'; +import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type SCREENS from '@src/SCREENS'; import type {CompanyAddress} from '@src/types/onyx/Policy'; @@ -19,7 +20,7 @@ type WorkspaceProfileAddressPagePolicyProps = WithPolicyProps; type WorkspaceProfileAddressPageProps = StackScreenProps & WorkspaceProfileAddressPagePolicyProps; -function WorkspaceProfileAddressPage({policy}: WorkspaceProfileAddressPageProps) { +function WorkspaceProfileAddressPage({policy, route}: WorkspaceProfileAddressPageProps) { const {translate} = useLocalize(); const address = useMemo(() => policy?.address, [policy]); const [currentCountry, setCurrentCountry] = useState(address?.country); @@ -28,6 +29,9 @@ function WorkspaceProfileAddressPage({policy}: WorkspaceProfileAddressPageProps) const [city, setCity] = useState(address?.city); const [zipcode, setZipcode] = useState(address?.zipCode); + const countryFromUrlTemp = route?.params?.country; + const countryFromUrl = CONST.ALL_COUNTRIES[countryFromUrlTemp as keyof typeof CONST.ALL_COUNTRIES] ? countryFromUrlTemp : ''; + const updatePolicyAddress = (values: FormOnyxValues) => { if (!policy) { return; @@ -81,6 +85,13 @@ function WorkspaceProfileAddressPage({policy}: WorkspaceProfileAddressPageProps) setZipcode(address.zipCode); }, [address]); + useEffect(() => { + if (!countryFromUrl) { + return; + } + handleAddressChange(countryFromUrl, 'country'); + }, [countryFromUrl, handleAddressChange]); + return ( ; function getPolicyIDFromRoute(route: PolicyRoute): string {