diff --git a/src/components/MoneyRequestConfirmationList.tsx b/src/components/MoneyRequestConfirmationList.tsx index 17ee0d31d63c..dd3e207c45fa 100755 --- a/src/components/MoneyRequestConfirmationList.tsx +++ b/src/components/MoneyRequestConfirmationList.tsx @@ -1043,7 +1043,7 @@ function MoneyRequestConfirmationList({ key={translate('workspace.invoices.sendFrom')} shouldShowRightIcon={!isReadOnly && canUpdateSenderWorkspace} title={senderWorkspace?.name} - icon={senderWorkspace?.avatar ? senderWorkspace?.avatar : getDefaultWorkspaceAvatar(senderWorkspace?.name)} + icon={senderWorkspace?.avatarURL ? senderWorkspace?.avatarURL : getDefaultWorkspaceAvatar(senderWorkspace?.name)} iconType={CONST.ICON_TYPE_WORKSPACE} description={translate('workspace.common.workspace')} label={translate('workspace.invoices.sendFrom')} diff --git a/src/components/WorkspaceSwitcherButton.tsx b/src/components/WorkspaceSwitcherButton.tsx index 118fcd0f10a9..94577eecf5b2 100644 --- a/src/components/WorkspaceSwitcherButton.tsx +++ b/src/components/WorkspaceSwitcherButton.tsx @@ -31,7 +31,7 @@ function WorkspaceSwitcherButton({policy}: WorkspaceSwitcherButtonProps) { return {source: Expensicons.ExpensifyAppIcon, name: CONST.WORKSPACE_SWITCHER.NAME, type: CONST.ICON_TYPE_AVATAR}; } - const avatar = policy?.avatar ? policy.avatar : getDefaultWorkspaceAvatar(policy?.name); + const avatar = policy?.avatarURL ? policy.avatarURL : getDefaultWorkspaceAvatar(policy?.name); return { source: avatar, name: policy?.name ?? '', diff --git a/src/hooks/useReportIDs.tsx b/src/hooks/useReportIDs.tsx index 58d4e42cd83b..c1503595fa24 100644 --- a/src/hooks/useReportIDs.tsx +++ b/src/hooks/useReportIDs.tsx @@ -13,7 +13,7 @@ import useCurrentReportID from './useCurrentReportID'; import useCurrentUserPersonalDetails from './useCurrentUserPersonalDetails'; type ChatReportSelector = OnyxTypes.Report & {isUnreadWithMention: boolean}; -type PolicySelector = Pick; +type PolicySelector = Pick; type ReportActionsSelector = Array>; type ReportIDsContextProviderProps = { @@ -97,7 +97,7 @@ const policySelector = (policy: OnyxEntry): PolicySelector => (policy && { type: policy.type, name: policy.name, - avatar: policy.avatar, + avatarURL: policy.avatarURL, employeeList: policy.employeeList, }) as PolicySelector; diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 769832747c41..9c5e437a874e 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -1669,7 +1669,7 @@ function getDefaultWorkspaceAvatarTestID(workspaceName: string): string { function getWorkspaceAvatar(report: OnyxEntry): UserUtils.AvatarSource { const workspaceName = getPolicyName(report, false, allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]); - const avatar = allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]?.avatar ?? ''; + const avatar = allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]?.avatarURL ?? ''; return !isEmpty(avatar) ? avatar : getDefaultWorkspaceAvatar(workspaceName); } @@ -1733,8 +1733,8 @@ function getIconsForParticipants(participants: number[], personalDetails: OnyxCo */ function getWorkspaceIcon(report: OnyxEntry, policy: OnyxEntry = null): Icon { const workspaceName = getPolicyName(report, false, policy); - const policyExpenseChatAvatarSource = allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]?.avatar - ? allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]?.avatar + const policyExpenseChatAvatarSource = allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]?.avatarURL + ? allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`]?.avatarURL : getDefaultWorkspaceAvatar(workspaceName); const workspaceIcon: Icon = { diff --git a/src/libs/actions/Policy.ts b/src/libs/actions/Policy.ts index 7c0ff7cf3879..547b9a203375 100644 --- a/src/libs/actions/Policy.ts +++ b/src/libs/actions/Policy.ts @@ -335,7 +335,7 @@ function deleteWorkspace(policyID: string, policyName: string) { onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { - avatar: '', + avatarURL: '', pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE, errors: null, }, @@ -1511,13 +1511,13 @@ function updateWorkspaceAvatar(policyID: string, file: File) { onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { - avatar: file.uri, + avatarURL: file.uri, originalFileName: file.name, errorFields: { - avatar: null, + avatarURL: null, }, pendingFields: { - avatar: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE, + avatarURL: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE, }, }, }, @@ -1528,7 +1528,7 @@ function updateWorkspaceAvatar(policyID: string, file: File) { key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { pendingFields: { - avatar: null, + avatarURL: null, }, }, }, @@ -1538,7 +1538,7 @@ function updateWorkspaceAvatar(policyID: string, file: File) { onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { - avatar: allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`]?.avatar, + avatarURL: allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${policyID}`]?.avatarURL, }, }, ]; @@ -1561,12 +1561,12 @@ function deleteWorkspaceAvatar(policyID: string) { key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { pendingFields: { - avatar: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE, + avatarURL: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE, }, errorFields: { - avatar: null, + avatarURL: null, }, - avatar: '', + avatarURL: '', }, }, ]; @@ -1576,7 +1576,7 @@ function deleteWorkspaceAvatar(policyID: string) { key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { pendingFields: { - avatar: null, + avatarURL: null, }, }, }, @@ -1587,7 +1587,7 @@ function deleteWorkspaceAvatar(policyID: string) { key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, value: { errorFields: { - avatar: ErrorUtils.getMicroSecondOnyxError('avatarWithImagePicker.deleteWorkspaceError'), + avatarURL: ErrorUtils.getMicroSecondOnyxError('avatarWithImagePicker.deleteWorkspaceError'), }, }, }, @@ -1604,10 +1604,10 @@ function deleteWorkspaceAvatar(policyID: string) { function clearAvatarErrors(policyID: string) { Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, { errorFields: { - avatar: null, + avatarURL: null, }, pendingFields: { - avatar: null, + avatarURL: null, }, }); } diff --git a/src/pages/WorkspaceSwitcherPage/index.tsx b/src/pages/WorkspaceSwitcherPage/index.tsx index a2768d71d42a..b01a78b65317 100644 --- a/src/pages/WorkspaceSwitcherPage/index.tsx +++ b/src/pages/WorkspaceSwitcherPage/index.tsx @@ -114,7 +114,7 @@ function WorkspaceSwitcherPage() { brickRoadIndicator: getIndicatorTypeForPolicy(policy?.id), icons: [ { - source: policy?.avatar ? policy.avatar : ReportUtils.getDefaultWorkspaceAvatar(policy?.name), + source: policy?.avatarURL ? policy.avatarURL : ReportUtils.getDefaultWorkspaceAvatar(policy?.name), fallbackIcon: Expensicons.FallbackWorkspaceAvatar, name: policy?.name, type: CONST.ICON_TYPE_WORKSPACE, diff --git a/src/pages/home/report/ReportActionItemCreated.tsx b/src/pages/home/report/ReportActionItemCreated.tsx index 2af71cb40e4c..f446c38fb1e9 100644 --- a/src/pages/home/report/ReportActionItemCreated.tsx +++ b/src/pages/home/report/ReportActionItemCreated.tsx @@ -114,7 +114,7 @@ export default withOnyx prevProps.policy?.name === nextProps.policy?.name && - prevProps.policy?.avatar === nextProps.policy?.avatar && + prevProps.policy?.avatarURL === nextProps.policy?.avatarURL && prevProps.report?.stateNum === nextProps.report?.stateNum && prevProps.report?.statusNum === nextProps.report?.statusNum && prevProps.report?.lastReadTime === nextProps.report?.lastReadTime && diff --git a/src/pages/home/sidebar/SidebarScreen/FloatingActionButtonAndPopover.tsx b/src/pages/home/sidebar/SidebarScreen/FloatingActionButtonAndPopover.tsx index 9429591b851f..cc61e61aa1f8 100644 --- a/src/pages/home/sidebar/SidebarScreen/FloatingActionButtonAndPopover.tsx +++ b/src/pages/home/sidebar/SidebarScreen/FloatingActionButtonAndPopover.tsx @@ -44,7 +44,7 @@ const useIsFocused = () => { return isFocused || (topmostCentralPane?.name === SCREENS.SEARCH.CENTRAL_PANE && isSmallScreenWidth); }; -type PolicySelector = Pick; +type PolicySelector = Pick; type FloatingActionButtonAndPopoverOnyxProps = { /** The list of policies the user has access to. */ @@ -91,7 +91,7 @@ const policySelector = (policy: OnyxEntry): PolicySelector => id: policy.id, isPolicyExpenseChatEnabled: policy.isPolicyExpenseChatEnabled, pendingAction: policy.pendingAction, - avatar: policy.avatar, + avatarURL: policy.avatarURL, name: policy.name, }) as PolicySelector; diff --git a/src/pages/iou/request/step/IOURequestStepSendFrom.tsx b/src/pages/iou/request/step/IOURequestStepSendFrom.tsx index 6de3780aa6e8..a5def1072f7e 100644 --- a/src/pages/iou/request/step/IOURequestStepSendFrom.tsx +++ b/src/pages/iou/request/step/IOURequestStepSendFrom.tsx @@ -47,7 +47,7 @@ function IOURequestStepSendFrom({route, transaction, allPolicies}: IOURequestSte keyForList: policy.id, icons: [ { - source: policy?.avatar ? policy.avatar : ReportUtils.getDefaultWorkspaceAvatar(policy.name), + source: policy?.avatarURL ? policy.avatarURL : ReportUtils.getDefaultWorkspaceAvatar(policy.name), fallbackIcon: Expensicons.FallbackWorkspaceAvatar, name: policy.name, type: CONST.ICON_TYPE_WORKSPACE, diff --git a/src/pages/workspace/WorkspaceAvatar.tsx b/src/pages/workspace/WorkspaceAvatar.tsx index 9ab9d0af25d5..f1aa5235b42f 100644 --- a/src/pages/workspace/WorkspaceAvatar.tsx +++ b/src/pages/workspace/WorkspaceAvatar.tsx @@ -19,7 +19,7 @@ type WorkspaceAvatarOnyxProps = { type WorkspaceAvatarProps = WorkspaceAvatarOnyxProps & StackScreenProps; function WorkspaceAvatar({policy, isLoadingApp = true}: WorkspaceAvatarProps) { - const avatarURL = policy?.avatar ?? '' ? policy?.avatar ?? '' : ReportUtils.getDefaultWorkspaceAvatar(policy?.name ?? ''); + const avatarURL = policy?.avatarURL ?? '' ? policy?.avatarURL ?? '' : ReportUtils.getDefaultWorkspaceAvatar(policy?.name ?? ''); return ( ), - [policy?.avatar, policy?.id, policyName, styles.alignSelfCenter, styles.avatarXLarge], + [policy?.avatarURL, policy?.id, policyName, styles.alignSelfCenter, styles.avatarXLarge], ); const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); @@ -139,7 +139,7 @@ function WorkspaceProfilePage({policy, currencyList = {}, route}: WorkSpaceProfi /> Navigation.navigate(ROUTES.WORKSPACE_AVATAR.getRoute(policy?.id ?? ''))} - source={policy?.avatar ?? ''} + source={policy?.avatarURL ?? ''} size={CONST.AVATAR_SIZE.XLARGE} avatarStyle={styles.avatarXLarge} enablePreview @@ -147,20 +147,20 @@ function WorkspaceProfilePage({policy, currencyList = {}, route}: WorkSpaceProfi type={CONST.ICON_TYPE_WORKSPACE} fallbackIcon={Expensicons.FallbackWorkspaceAvatar} style={[ - policy?.errorFields?.avatar ?? isSmallScreenWidth ? styles.mb1 : styles.mb3, + policy?.errorFields?.avatarURL ?? isSmallScreenWidth ? styles.mb1 : styles.mb3, isSmallScreenWidth ? styles.mtn17 : styles.mtn20, styles.alignItemsStart, styles.sectionMenuItemTopDescription, ]} editIconStyle={styles.smallEditIconWorkspace} - isUsingDefaultAvatar={!policy?.avatar ?? null} + isUsingDefaultAvatar={!policy?.avatarURL ?? false} onImageSelected={(file) => Policy.updateWorkspaceAvatar(policy?.id ?? '', file as File)} onImageRemoved={() => Policy.deleteWorkspaceAvatar(policy?.id ?? '')} editorMaskImage={Expensicons.ImageCropSquareMask} - pendingAction={policy?.pendingFields?.avatar} - errors={policy?.errorFields?.avatar} + pendingAction={policy?.pendingFields?.avatarURL} + errors={policy?.errorFields?.avatarURL} onErrorClose={() => Policy.clearAvatarErrors(policy?.id ?? '')} - previewSource={UserUtils.getFullSizeAvatar(policy?.avatar ?? '')} + previewSource={UserUtils.getFullSizeAvatar(policy?.avatarURL ?? '')} headerTitle={translate('workspace.common.workspaceAvatar')} originalFileName={policy?.originalFileName} disabled={readOnly} diff --git a/src/pages/workspace/WorkspaceProfileSharePage.tsx b/src/pages/workspace/WorkspaceProfileSharePage.tsx index 7e3a21a7f88d..1d7ec8c50e29 100644 --- a/src/pages/workspace/WorkspaceProfileSharePage.tsx +++ b/src/pages/workspace/WorkspaceProfileSharePage.tsx @@ -65,7 +65,7 @@ function WorkspaceProfileSharePage({policy}: WithPolicyProps) { ref={qrCodeRef} url={url} title={policyName} - logo={(policy?.avatar ? policy.avatar : expensifyLogo) as ImageSourcePropType} + logo={(policy?.avatarURL ? policy.avatarURL : expensifyLogo) as ImageSourcePropType} logoRatio={CONST.QR.DEFAULT_LOGO_SIZE_RATIO} logoMarginRatio={CONST.QR.DEFAULT_LOGO_MARGIN_RATIO} /> diff --git a/src/pages/workspace/WorkspacesListPage.tsx b/src/pages/workspace/WorkspacesListPage.tsx index 050fb72b02ac..a22a3679b435 100755 --- a/src/pages/workspace/WorkspacesListPage.tsx +++ b/src/pages/workspace/WorkspacesListPage.tsx @@ -334,7 +334,7 @@ function WorkspacesListPage({policies, reimbursementAccount, reports, session}: } return { title: policy.name, - icon: policy.avatar ? policy.avatar : ReportUtils.getDefaultWorkspaceAvatar(policy.name), + icon: policy.avatarURL ? policy.avatarURL : ReportUtils.getDefaultWorkspaceAvatar(policy.name), action: () => Navigation.navigate(ROUTES.WORKSPACE_INITIAL.getRoute(policy.id)), brickRoadIndicator: reimbursementAccountBrickRoadIndicator ?? PolicyUtils.getPolicyBrickRoadIndicatorStatus(policy), pendingAction: policy.pendingAction, @@ -346,7 +346,7 @@ function WorkspacesListPage({policies, reimbursementAccount, reports, session}: dismissWorkspaceError(policy.id, policy.pendingAction); }, disabled: policy.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE, - iconType: policy.avatar ? CONST.ICON_TYPE_AVATAR : CONST.ICON_TYPE_ICON, + iconType: policy.avatarURL ? CONST.ICON_TYPE_AVATAR : CONST.ICON_TYPE_ICON, iconFill: theme.textLight, fallbackIcon: Expensicons.FallbackWorkspaceAvatar, policyID: policy.id, diff --git a/src/types/onyx/Policy.ts b/src/types/onyx/Policy.ts index 2e4c37d4c082..60492583dda1 100644 --- a/src/types/onyx/Policy.ts +++ b/src/types/onyx/Policy.ts @@ -377,7 +377,6 @@ type Policy = OnyxCommon.OnyxValueWithOfflineFeedback< address?: CompanyAddress; /** The URL for the policy avatar */ - avatar?: string; avatarURL?: string; /** Error objects keyed by field name containing errors keyed by microtime */ diff --git a/tests/utils/LHNTestUtils.tsx b/tests/utils/LHNTestUtils.tsx index e3daa93a3179..abfaf9bd8b00 100644 --- a/tests/utils/LHNTestUtils.tsx +++ b/tests/utils/LHNTestUtils.tsx @@ -248,7 +248,7 @@ function getFakePolicy(id = '1', name = 'Workspace-Test-001'): Policy { type: 'free', owner: 'myuser@gmail.com', outputCurrency: 'BRL', - avatar: '', + avatarURL: '', employeeList: {}, isPolicyExpenseChatEnabled: true, lastModified: '1697323926777105', diff --git a/tests/utils/collections/policies.ts b/tests/utils/collections/policies.ts index 8dd04f4750a9..5507c9e75436 100644 --- a/tests/utils/collections/policies.ts +++ b/tests/utils/collections/policies.ts @@ -20,7 +20,7 @@ export default function createRandomPolicy(index: number): Policy { role: rand(Object.values(CONST.POLICY.ROLE)), owner: randEmail(), ownerAccountID: index, - avatar: randAvatar(), + avatarURL: randAvatar(), isFromFullPolicy: randBoolean(), lastModified: randPastDate().toISOString(), pendingAction: rand(Object.values(CONST.RED_BRICK_ROAD_PENDING_ACTION)),