diff --git a/src/CONST.ts b/src/CONST.ts index 55cbdecc6046..dce62ef0ae1f 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -357,7 +357,6 @@ const CONST = { TRACK_EXPENSE: 'trackExpense', P2P_DISTANCE_REQUESTS: 'p2pDistanceRequests', WORKFLOWS_DELAYED_SUBMISSION: 'workflowsDelayedSubmission', - SPOTNANA_TRAVEL: 'spotnanaTravel', ACCOUNTING_ON_NEW_EXPENSIFY: 'accountingOnNewExpensify', XERO_ON_NEW_EXPENSIFY: 'xeroOnNewExpensify', }, diff --git a/src/ROUTES.ts b/src/ROUTES.ts index 79f9c84b5998..2a1bfcdcf869 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -472,10 +472,6 @@ const ROUTES = { route: 'settings/workspaces/:policyID/profile', getRoute: (policyID: string) => `settings/workspaces/${policyID}/profile` as const, }, - WORKSPACE_PROFILE_ADDRESS: { - route: 'settings/workspaces/:policyID/profile/address', - getRoute: (policyID: string) => `settings/workspaces/${policyID}/profile/address` as const, - }, WORKSPACE_ACCOUNTING: { route: 'settings/workspaces/:policyID/accounting', getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting` as const, diff --git a/src/SCREENS.ts b/src/SCREENS.ts index ec120657a3bb..f285e9c4172f 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -270,7 +270,6 @@ const SCREENS = { TAG_CREATE: 'Tag_Create', TAG_SETTINGS: 'Tag_Settings', CURRENCY: 'Workspace_Profile_Currency', - ADDRESS: 'Workspace_Profile_Address', WORKFLOWS: 'Workspace_Workflows', WORKFLOWS_PAYER: 'Workspace_Workflows_Payer', WORKFLOWS_APPROVER: 'Workspace_Workflows_Approver', diff --git a/src/libs/API/parameters/UpdatePolicyAddressParams.ts b/src/libs/API/parameters/UpdatePolicyAddressParams.ts deleted file mode 100644 index f362fbbed790..000000000000 --- a/src/libs/API/parameters/UpdatePolicyAddressParams.ts +++ /dev/null @@ -1,12 +0,0 @@ -// TODO: Change API endpoint parameters format to make it possible to follow naming-convention -/* eslint-disable @typescript-eslint/naming-convention */ -type UpdatePolicyAddressParams = { - policyID: string; - 'data[addressStreet]': string; - 'data[city]': string; - 'data[country]': string; - 'data[state]': string; - 'data[zipCode]': string; -}; - -export default UpdatePolicyAddressParams; diff --git a/src/libs/API/parameters/index.ts b/src/libs/API/parameters/index.ts index 30261051c0e5..bb60a213869b 100644 --- a/src/libs/API/parameters/index.ts +++ b/src/libs/API/parameters/index.ts @@ -64,7 +64,6 @@ export type {default as UpdateFrequentlyUsedEmojisParams} from './UpdateFrequent export type {default as UpdateGroupChatNameParams} from './UpdateGroupChatNameParams'; export type {default as UpdateGroupChatMemberRolesParams} from './UpdateGroupChatMemberRolesParams'; export type {default as UpdateHomeAddressParams} from './UpdateHomeAddressParams'; -export type {default as UpdatePolicyAddressParams} from './UpdatePolicyAddressParams'; export type {default as UpdateLegalNameParams} from './UpdateLegalNameParams'; export type {default as UpdateNewsletterSubscriptionParams} from './UpdateNewsletterSubscriptionParams'; export type {default as UpdatePersonalInformationForBankAccountParams} from './UpdatePersonalInformationForBankAccountParams'; diff --git a/src/libs/API/types.ts b/src/libs/API/types.ts index cd85cdfbe401..b38ef2b1f7c6 100644 --- a/src/libs/API/types.ts +++ b/src/libs/API/types.ts @@ -42,7 +42,6 @@ const WRITE_COMMANDS = { UPDATE_LEGAL_NAME: 'UpdateLegalName', UPDATE_DATE_OF_BIRTH: 'UpdateDateOfBirth', UPDATE_HOME_ADDRESS: 'UpdateHomeAddress', - UPDATE_POLICY_ADDRESS: 'SetPolicyAddress', UPDATE_AUTOMATIC_TIMEZONE: 'UpdateAutomaticTimezone', UPDATE_SELECTED_TIMEZONE: 'UpdateSelectedTimezone', UPDATE_USER_AVATAR: 'UpdateUserAvatar', @@ -244,7 +243,6 @@ type WriteCommandParameters = { [WRITE_COMMANDS.UPDATE_DISPLAY_NAME]: Parameters.UpdateDisplayNameParams; [WRITE_COMMANDS.UPDATE_LEGAL_NAME]: Parameters.UpdateLegalNameParams; [WRITE_COMMANDS.UPDATE_DATE_OF_BIRTH]: Parameters.UpdateDateOfBirthParams; - [WRITE_COMMANDS.UPDATE_POLICY_ADDRESS]: Parameters.UpdatePolicyAddressParams; [WRITE_COMMANDS.UPDATE_HOME_ADDRESS]: Parameters.UpdateHomeAddressParams; [WRITE_COMMANDS.UPDATE_AUTOMATIC_TIMEZONE]: Parameters.UpdateAutomaticTimezoneParams; [WRITE_COMMANDS.UPDATE_SELECTED_TIMEZONE]: Parameters.UpdateSelectedTimezoneParams; diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx index eb45b5029619..f042d19d74b8 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx @@ -229,7 +229,6 @@ const SettingsModalStackNavigator = createModalStackNavigator require('../../../../pages/workspace/WorkspaceProfileSharePage').default as React.ComponentType, [SCREENS.WORKSPACE.CURRENCY]: () => require('../../../../pages/workspace/WorkspaceProfileCurrencyPage').default as React.ComponentType, [SCREENS.WORKSPACE.CATEGORY_SETTINGS]: () => require('../../../../pages/workspace/categories/CategorySettingsPage').default as React.ComponentType, - [SCREENS.WORKSPACE.ADDRESS]: () => require('../../../../pages/workspace/WorkspaceProfileAddressPage').default as React.ComponentType, [SCREENS.WORKSPACE.CATEGORIES_SETTINGS]: () => require('../../../../pages/workspace/categories/WorkspaceCategoriesSettingsPage').default as React.ComponentType, [SCREENS.WORKSPACE.MEMBER_DETAILS]: () => require('../../../../pages/workspace/members/WorkspaceMemberDetailsPage').default as React.ComponentType, [SCREENS.WORKSPACE.OWNER_CHANGE_CHECK]: () => require('@pages/workspace/members/WorkspaceOwnerChangeWrapperPage').default as React.ComponentType, diff --git a/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts b/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts index d4501bd09044..5f1a6d66502e 100755 --- a/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts +++ b/src/libs/Navigation/linkingConfig/FULL_SCREEN_TO_RHP_MAPPING.ts @@ -2,7 +2,7 @@ import type {FullScreenName} from '@libs/Navigation/types'; import SCREENS from '@src/SCREENS'; const FULL_SCREEN_TO_RHP_MAPPING: Partial> = { - [SCREENS.WORKSPACE.PROFILE]: [SCREENS.WORKSPACE.NAME, SCREENS.WORKSPACE.ADDRESS, SCREENS.WORKSPACE.CURRENCY, SCREENS.WORKSPACE.DESCRIPTION, SCREENS.WORKSPACE.SHARE], + [SCREENS.WORKSPACE.PROFILE]: [SCREENS.WORKSPACE.NAME, SCREENS.WORKSPACE.CURRENCY, SCREENS.WORKSPACE.DESCRIPTION, SCREENS.WORKSPACE.SHARE], [SCREENS.WORKSPACE.REIMBURSE]: [SCREENS.WORKSPACE.RATE_AND_UNIT, SCREENS.WORKSPACE.RATE_AND_UNIT_RATE, SCREENS.WORKSPACE.RATE_AND_UNIT_UNIT], [SCREENS.WORKSPACE.MEMBERS]: [ SCREENS.WORKSPACE.INVITE, diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts index 7f9e7eba5003..1fd1e5edea00 100644 --- a/src/libs/Navigation/linkingConfig/config.ts +++ b/src/libs/Navigation/linkingConfig/config.ts @@ -281,9 +281,6 @@ const config: LinkingOptions['config'] = { [SCREENS.WORKSPACE.CURRENCY]: { path: ROUTES.WORKSPACE_PROFILE_CURRENCY.route, }, - [SCREENS.WORKSPACE.ADDRESS]: { - path: ROUTES.WORKSPACE_PROFILE_ADDRESS.route, - }, [SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_IMPORT]: {path: ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_IMPORT.route}, [SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS]: {path: ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS.route}, [SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_CLASSES]: {path: ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_CLASSES.route}, diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index 522a8514587a..7cefe21b5bf1 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -163,7 +163,6 @@ 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.NAME]: undefined; [SCREENS.WORKSPACE.DESCRIPTION]: undefined; [SCREENS.WORKSPACE.SHARE]: undefined; diff --git a/src/libs/Permissions.ts b/src/libs/Permissions.ts index 79955c0fdf30..6ef30cd35835 100644 --- a/src/libs/Permissions.ts +++ b/src/libs/Permissions.ts @@ -36,10 +36,6 @@ function canUseWorkflowsDelayedSubmission(betas: OnyxEntry): boolean { return !!betas?.includes(CONST.BETAS.WORKFLOWS_DELAYED_SUBMISSION) || canUseAllBetas(betas); } -function canUseSpotnanaTravel(betas: OnyxEntry): boolean { - return !!betas?.includes(CONST.BETAS.SPOTNANA_TRAVEL) || canUseAllBetas(betas); -} - function canUseAccountingIntegrations(betas: OnyxEntry): boolean { return !!betas?.includes(CONST.BETAS.ACCOUNTING_ON_NEW_EXPENSIFY) || canUseAllBetas(betas); } @@ -64,7 +60,6 @@ export default { canUseReportFields, canUseP2PDistanceRequests, canUseWorkflowsDelayedSubmission, - canUseSpotnanaTravel, canUseAccountingIntegrations, canUseXeroIntegration, }; diff --git a/src/libs/actions/Policy.ts b/src/libs/actions/Policy.ts index 547b9a203375..25eca7be2299 100644 --- a/src/libs/actions/Policy.ts +++ b/src/libs/actions/Policy.ts @@ -54,7 +54,6 @@ import type { UpdateWorkspaceGeneralSettingsParams, UpdateWorkspaceMembersRoleParams, } from '@libs/API/parameters'; -import type UpdatePolicyAddressParams from '@libs/API/parameters/UpdatePolicyAddressParams'; import {READ_COMMANDS, WRITE_COMMANDS} from '@libs/API/types'; import DateUtils from '@libs/DateUtils'; import * as ErrorUtils from '@libs/ErrorUtils'; @@ -95,7 +94,7 @@ import type { } from '@src/types/onyx'; import type {ErrorFields, Errors, OnyxValueWithOfflineFeedback, PendingAction} from '@src/types/onyx/OnyxCommon'; import type {OriginalMessageJoinPolicyChangeLog} from '@src/types/onyx/OriginalMessage'; -import type {Attributes, CompanyAddress, CustomUnit, Rate, Unit} from '@src/types/onyx/Policy'; +import type {Attributes, CustomUnit, Rate, Unit} from '@src/types/onyx/Policy'; import type {OnyxData} from '@src/types/onyx/Request'; import type {EmptyObject} from '@src/types/utils/EmptyObject'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; @@ -1831,37 +1830,6 @@ function hideWorkspaceAlertMessage(policyID: string) { Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {alertMessage: ''}); } -function updateAddress(policyID: string, newAddress: CompanyAddress) { - // TODO: Change API endpoint parameters format to make it possible to follow naming-convention - const parameters: UpdatePolicyAddressParams = { - policyID, - // eslint-disable-next-line @typescript-eslint/naming-convention - 'data[addressStreet]': newAddress.addressStreet, - // eslint-disable-next-line @typescript-eslint/naming-convention - 'data[city]': newAddress.city, - // eslint-disable-next-line @typescript-eslint/naming-convention - 'data[country]': newAddress.country, - // eslint-disable-next-line @typescript-eslint/naming-convention - 'data[state]': newAddress.state, - // eslint-disable-next-line @typescript-eslint/naming-convention - 'data[zipCode]': newAddress.zipCode, - }; - - const optimisticData: OnyxUpdate[] = [ - { - onyxMethod: Onyx.METHOD.MERGE, - key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, - value: { - address: newAddress, - }, - }, - ]; - - API.write(WRITE_COMMANDS.UPDATE_POLICY_ADDRESS, parameters, { - optimisticData, - }); -} - function updateWorkspaceCustomUnitAndRate(policyID: string, currentCustomUnit: CustomUnit, newCustomUnit: NewCustomUnit, lastModified?: string) { if (!currentCustomUnit.customUnitID || !newCustomUnit?.customUnitID || !newCustomUnit.rates?.customUnitRateID) { return; @@ -5076,7 +5044,6 @@ export { clearCustomUnitErrors, hideWorkspaceAlertMessage, deleteWorkspace, - updateAddress, updateWorkspaceCustomUnitAndRate, updateLastAccessedWorkspace, clearDeleteMemberError, diff --git a/src/pages/workspace/WorkspaceProfileAddressPage.tsx b/src/pages/workspace/WorkspaceProfileAddressPage.tsx deleted file mode 100644 index 175a3611ef57..000000000000 --- a/src/pages/workspace/WorkspaceProfileAddressPage.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import type {StackScreenProps} from '@react-navigation/stack'; -import React, {useCallback, useEffect, useMemo, useState} from 'react'; -import AddressForm from '@components/AddressForm'; -import type {FormOnyxValues} from '@components/Form/types'; -import HeaderWithBackButton from '@components/HeaderWithBackButton'; -import ScreenWrapper from '@components/ScreenWrapper'; -import useLocalize from '@hooks/useLocalize'; -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 ONYXKEYS from '@src/ONYXKEYS'; -import type SCREENS from '@src/SCREENS'; -import type {CompanyAddress} from '@src/types/onyx/Policy'; -import type {WithPolicyProps} from './withPolicy'; -import withPolicy from './withPolicy'; - -type WorkspaceProfileAddressPagePolicyProps = WithPolicyProps; - -type WorkspaceProfileAddressPageProps = StackScreenProps & WorkspaceProfileAddressPagePolicyProps; - -function WorkspaceProfileAddressPage({policy}: WorkspaceProfileAddressPageProps) { - const {translate} = useLocalize(); - const address = useMemo(() => policy?.address, [policy]); - const [currentCountry, setCurrentCountry] = useState(address?.country); - const [[street1, street2], setStreets] = useState((address?.addressStreet ?? '').split('\n')); - const [state, setState] = useState(address?.state); - const [city, setCity] = useState(address?.city); - const [zipcode, setZipcode] = useState(address?.zipCode); - - const updatePolicyAddress = (values: FormOnyxValues) => { - if (!policy) { - return; - } - updateAddress(policy?.id, { - addressStreet: `${values.addressLine1?.trim() ?? ''}\n${values.addressLine2?.trim() ?? ''}`, - city: values.city.trim(), - state: values.state.trim(), - zipCode: values?.zipPostCode?.trim().toUpperCase() ?? '', - country: values.country, - }); - Navigation.goBack(); - }; - - const handleAddressChange = useCallback((value: unknown, key: unknown) => { - const countryValue = value as Country | ''; - const addressKey = key as keyof CompanyAddress; - - if (addressKey !== 'country' && addressKey !== 'state' && addressKey !== 'city' && addressKey !== 'zipCode') { - return; - } - if (addressKey === 'country') { - setCurrentCountry(countryValue); - setState(''); - setCity(''); - setZipcode(''); - return; - } - if (addressKey === 'state') { - setState(countryValue); - setCity(''); - setZipcode(''); - return; - } - if (addressKey === 'city') { - setCity(countryValue); - setZipcode(''); - return; - } - setZipcode(countryValue); - }, []); - - useEffect(() => { - if (!address) { - return; - } - setStreets((address?.addressStreet ?? '').split('\n')); - setState(address.state); - setCurrentCountry(address.country); - setCity(address.city); - setZipcode(address.zipCode); - }, [address]); - - return ( - - Navigation.goBack()} - /> - - - ); -} - -WorkspaceProfileAddressPage.displayName = 'WorkspaceProfileAddressPage'; - -export default withPolicy(WorkspaceProfileAddressPage); diff --git a/src/pages/workspace/WorkspaceProfilePage.tsx b/src/pages/workspace/WorkspaceProfilePage.tsx index 02b41518533f..da1879e4b390 100644 --- a/src/pages/workspace/WorkspaceProfilePage.tsx +++ b/src/pages/workspace/WorkspaceProfilePage.tsx @@ -16,7 +16,6 @@ import Section from '@components/Section'; import Text from '@components/Text'; import useActiveWorkspace from '@hooks/useActiveWorkspace'; import useLocalize from '@hooks/useLocalize'; -import usePermissions from '@hooks/usePermissions'; import useThemeIllustrations from '@hooks/useThemeIllustrations'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; @@ -51,20 +50,12 @@ function WorkspaceProfilePage({policy, currencyList = {}, route}: WorkSpaceProfi const {isSmallScreenWidth} = useWindowDimensions(); const illustrations = useThemeIllustrations(); const {activeWorkspaceID, setActiveWorkspaceID} = useActiveWorkspace(); - const {canUseSpotnanaTravel} = usePermissions(); const outputCurrency = policy?.outputCurrency ?? ''; const currencySymbol = currencyList?.[outputCurrency]?.symbol ?? ''; const formattedCurrency = !isEmptyObject(policy) && !isEmptyObject(currencyList) ? `${outputCurrency} - ${currencySymbol}` : ''; - const [street1, street2] = (policy?.address?.addressStreet ?? '').split('\n'); - const formattedAddress = - !isEmptyObject(policy) && !isEmptyObject(policy.address) - ? `${street1?.trim()}, ${street2 ? `${street2.trim()}, ` : ''}${policy.address.city}, ${policy.address.state} ${policy.address.zipCode ?? ''}` - : ''; - const onPressCurrency = useCallback(() => Navigation.navigate(ROUTES.WORKSPACE_PROFILE_CURRENCY.getRoute(policy?.id ?? '')), [policy?.id]); - const onPressAddress = useCallback(() => Navigation.navigate(ROUTES.WORKSPACE_PROFILE_ADDRESS.getRoute(policy?.id ?? '')), [policy?.id]); const onPressName = useCallback(() => Navigation.navigate(ROUTES.WORKSPACE_PROFILE_NAME.getRoute(policy?.id ?? '')), [policy?.id]); const onPressDescription = useCallback(() => Navigation.navigate(ROUTES.WORKSPACE_PROFILE_DESCRIPTION.getRoute(policy?.id ?? '')), [policy?.id]); const onPressShare = useCallback(() => Navigation.navigate(ROUTES.WORKSPACE_PROFILE_SHARE.getRoute(policy?.id ?? '')), [policy?.id]); @@ -221,22 +212,6 @@ function WorkspaceProfilePage({policy, currencyList = {}, route}: WorkSpaceProfi - {canUseSpotnanaTravel && ( - - - - - - )} {!readOnly && (