From 2b46f139e05c1b6094d8f11bea656982e70dc61f Mon Sep 17 00:00:00 2001 From: daledah Date: Fri, 7 Nov 2025 00:53:25 +0700 Subject: [PATCH 1/4] updates to workspace Overview page --- src/pages/workspace/WorkspaceOverviewPage.tsx | 63 +++++++++++-------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/src/pages/workspace/WorkspaceOverviewPage.tsx b/src/pages/workspace/WorkspaceOverviewPage.tsx index d1f28efa64962..2e7a029265d0a 100644 --- a/src/pages/workspace/WorkspaceOverviewPage.tsx +++ b/src/pages/workspace/WorkspaceOverviewPage.tsx @@ -1,11 +1,11 @@ import {useFocusEffect, useIsFocused} from '@react-navigation/native'; import {accountIDSelector} from '@selectors/Session'; import React, {useCallback, useContext, useEffect, useRef, useState} from 'react'; -import type {ImageStyle, StyleProp} from 'react-native'; -import {Image, StyleSheet, View} from 'react-native'; +import {View} from 'react-native'; import type {ValueOf} from 'type-fest'; import Avatar from '@components/Avatar'; import AvatarWithImagePicker from '@components/AvatarWithImagePicker'; +import Button from '@components/Button'; import ButtonWithDropdownMenu from '@components/ButtonWithDropdownMenu'; import type {DropdownOption} from '@components/ButtonWithDropdownMenu/types'; import ConfirmModal from '@components/ConfirmModal'; @@ -72,7 +72,6 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa const {translate} = useLocalize(); const {shouldUseNarrowLayout} = useResponsiveLayout(); const currentUserPersonalDetails = useCurrentUserPersonalDetails(); - const illustrations = useThemeIllustrations(); const illustrationIcons = useMemoizedLazyIllustrations(['Building'] as const); const expensifyIcons = useMemoizedLazyExpensifyIcons(['FallbackWorkspaceAvatar', 'ImageCropSquareMask', 'QrCode', 'Transfer', 'Trashcan', 'UserPlus'] as const); @@ -160,7 +159,6 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa const readOnly = !isPolicyAdminPolicyUtils(policy); const currencyReadOnly = readOnly || isBankAccountVerified; const isOwner = isPolicyOwner(policy, currentUserAccountID); - const imageStyle: StyleProp = shouldUseNarrowLayout ? [styles.mhv12, styles.mhn5, styles.mbn5] : [styles.mhv8, styles.mhn8, styles.mbn5]; const shouldShowAddress = !readOnly || !!formattedAddress; const {isAccountLocked, showLockedAccountModal} = useContext(LockedAccountContext); const [lastPaymentMethod] = useOnyx(ONYXKEYS.NVP_LAST_PAYMENT_METHOD, {canBeMissing: true}); @@ -390,21 +388,16 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa return null; } - if (isPolicyAdmin) { - secondaryActions.push({ - value: 'invite', - text: translate('common.invite'), - icon: expensifyIcons.UserPlus, - onSelected: () => { - if (isAccountLocked) { - showLockedAccountModal(); - return; - } - clearInviteDraft(route.params.policyID); - Navigation.navigate(ROUTES.WORKSPACE_INVITE.getRoute(route.params.policyID, Navigation.getActiveRouteWithoutParams())); - }, - }); - } + // Prepare Invite button handler + const handleInvitePress = () => { + if (isAccountLocked) { + showLockedAccountModal(); + return; + } + clearInviteDraft(route.params.policyID); + Navigation.navigate(ROUTES.WORKSPACE_INVITE.getRoute(route.params.policyID, Navigation.getActiveRouteWithoutParams())); + }; + secondaryActions.push({ value: 'share', text: translate('common.share'), @@ -441,7 +434,31 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa }); } - return renderDropdownMenu(secondaryActions); + return ( + + {isPolicyAdmin && ( +