Skip to content

Commit c5a50bb

Browse files
marcaaronOSBotify
authored andcommitted
Merge pull request #76184 from situchan/revert-74667-fix/74496
Revert "Two updates to workspace Overview page" (cherry picked from commit 294c3c1) (cherry-picked to staging by marcaaron)
1 parent 774921d commit c5a50bb

File tree

2 files changed

+45
-39
lines changed

2 files changed

+45
-39
lines changed

src/components/Section/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ function Section({
186186
/>
187187
)}
188188
<View style={[styles.flexShrink1, styles.w100]}>
189-
{renderTitle ? renderTitle() : !!title && <Text style={[styles.textHeadline, styles.cardSectionTitle, titleStyles]}>{title}</Text>}
189+
{renderTitle ? renderTitle() : <Text style={[styles.textHeadline, styles.cardSectionTitle, titleStyles]}>{title}</Text>}
190190
</View>
191191
{cardLayout === CARD_LAYOUT.ICON_ON_RIGHT && (
192192
<IconSection

src/pages/workspace/WorkspaceOverviewPage.tsx

Lines changed: 44 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import {useFocusEffect, useIsFocused} from '@react-navigation/native';
22
import {accountIDSelector} from '@selectors/Session';
33
import React, {useCallback, useContext, useEffect, useRef, useState} from 'react';
4-
import {View} from 'react-native';
4+
import type {ImageStyle, StyleProp} from 'react-native';
5+
import {Image, StyleSheet, View} from 'react-native';
56
import type {ValueOf} from 'type-fest';
67
import Avatar from '@components/Avatar';
78
import AvatarWithImagePicker from '@components/AvatarWithImagePicker';
8-
import Button from '@components/Button';
99
import ButtonWithDropdownMenu from '@components/ButtonWithDropdownMenu';
1010
import type {DropdownOption} from '@components/ButtonWithDropdownMenu/types';
1111
import ConfirmModal from '@components/ConfirmModal';
@@ -25,6 +25,7 @@ import usePayAndDowngrade from '@hooks/usePayAndDowngrade';
2525
import usePermissions from '@hooks/usePermissions';
2626
import usePrevious from '@hooks/usePrevious';
2727
import useResponsiveLayout from '@hooks/useResponsiveLayout';
28+
import useThemeIllustrations from '@hooks/useThemeIllustrations';
2829
import useThemeStyles from '@hooks/useThemeStyles';
2930
import useTransactionViolationOfWorkspace from '@hooks/useTransactionViolationOfWorkspace';
3031
import {close} from '@libs/actions/Modal';
@@ -70,6 +71,7 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
7071
const {translate} = useLocalize();
7172
const {shouldUseNarrowLayout} = useResponsiveLayout();
7273
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
74+
const illustrations = useThemeIllustrations();
7375
const illustrationIcons = useMemoizedLazyIllustrations(['Building'] as const);
7476
const expensifyIcons = useMemoizedLazyExpensifyIcons(['Exit', 'FallbackWorkspaceAvatar', 'ImageCropSquareMask', 'QrCode', 'Transfer', 'Trashcan', 'UserPlus'] as const);
7577

@@ -157,6 +159,7 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
157159
const readOnly = !isPolicyAdminPolicyUtils(policy);
158160
const currencyReadOnly = readOnly || isBankAccountVerified;
159161
const isOwner = isPolicyOwner(policy, currentUserAccountID);
162+
const imageStyle: StyleProp<ImageStyle> = shouldUseNarrowLayout ? [styles.mhv12, styles.mhn5, styles.mbn5] : [styles.mhv8, styles.mhn8, styles.mbn5];
160163
const shouldShowAddress = !readOnly || !!formattedAddress;
161164
const {isAccountLocked, showLockedAccountModal} = useContext(LockedAccountContext);
162165
const [lastPaymentMethod] = useOnyx(ONYXKEYS.NVP_LAST_PAYMENT_METHOD, {canBeMissing: true});
@@ -377,27 +380,20 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
377380
};
378381

379382
const renderDropdownMenu = (options: Array<DropdownOption<string>>) => (
380-
<ButtonWithDropdownMenu
381-
ref={dropdownMenuRef}
382-
success={false}
383-
onPress={() => {}}
384-
shouldAlwaysShowDropdownMenu
385-
customText={translate('common.more')}
386-
options={options}
387-
isSplitButton={false}
388-
wrapperStyle={isPolicyAdmin ? styles.flexGrow0 : styles.flexGrow1}
389-
/>
383+
<View style={[!shouldUseNarrowLayout && styles.flexRow, !shouldUseNarrowLayout && styles.gap2]}>
384+
<ButtonWithDropdownMenu
385+
ref={dropdownMenuRef}
386+
success={false}
387+
onPress={() => {}}
388+
shouldAlwaysShowDropdownMenu
389+
customText={translate('common.more')}
390+
options={options}
391+
isSplitButton={false}
392+
wrapperStyle={styles.flexGrow1}
393+
/>
394+
</View>
390395
);
391396

392-
const handleInvitePress = useCallback(() => {
393-
if (isAccountLocked) {
394-
showLockedAccountModal();
395-
return;
396-
}
397-
clearInviteDraft(route.params.policyID);
398-
Navigation.navigate(ROUTES.WORKSPACE_INVITE.getRoute(route.params.policyID, Navigation.getActiveRouteWithoutParams()));
399-
}, [isAccountLocked, showLockedAccountModal, route.params.policyID]);
400-
401397
const getHeaderButtons = () => {
402398
const secondaryActions: Array<DropdownOption<string>> = [];
403399
const canLeave = !isOwner;
@@ -415,6 +411,21 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
415411
return null;
416412
}
417413

414+
if (isPolicyAdmin) {
415+
secondaryActions.push({
416+
value: 'invite',
417+
text: translate('common.invite'),
418+
icon: expensifyIcons.UserPlus,
419+
onSelected: () => {
420+
if (isAccountLocked) {
421+
showLockedAccountModal();
422+
return;
423+
}
424+
clearInviteDraft(route.params.policyID);
425+
Navigation.navigate(ROUTES.WORKSPACE_INVITE.getRoute(route.params.policyID, Navigation.getActiveRouteWithoutParams()));
426+
},
427+
});
428+
}
418429
secondaryActions.push({
419430
value: 'share',
420431
text: translate('common.share'),
@@ -451,22 +462,7 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
451462
});
452463
}
453464

454-
return (
455-
<View style={[styles.flexRow, styles.gap2]}>
456-
{isPolicyAdmin && (
457-
<Button
458-
success
459-
text={translate('common.invite')}
460-
icon={expensifyIcons.UserPlus}
461-
onPress={handleInvitePress}
462-
medium
463-
innerStyles={[shouldUseNarrowLayout && styles.alignItemsCenter]}
464-
style={[shouldUseNarrowLayout && styles.flexGrow1, shouldUseNarrowLayout && styles.mb3]}
465-
/>
466-
)}
467-
{renderDropdownMenu(secondaryActions)}
468-
</View>
469-
);
465+
return renderDropdownMenu(secondaryActions);
470466
};
471467

472468
return (
@@ -495,6 +491,11 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
495491
isCentralPane
496492
title=""
497493
>
494+
<Image
495+
style={StyleSheet.flatten([styles.wAuto, styles.h68, imageStyle])}
496+
source={illustrations.WorkspaceProfile}
497+
resizeMode="cover"
498+
/>
498499
<AvatarWithImagePicker
499500
onViewPhotoPress={() => {
500501
if (!policy?.id) {
@@ -511,7 +512,12 @@ function WorkspaceOverviewPage({policyDraft, policy: policyProp, route}: Workspa
511512
DefaultAvatar={DefaultAvatar}
512513
type={CONST.ICON_TYPE_WORKSPACE}
513514
fallbackIcon={expensifyIcons.FallbackWorkspaceAvatar}
514-
style={[(policy?.errorFields?.avatarURL ?? shouldUseNarrowLayout) ? styles.mb1 : styles.mb3, styles.alignItemsStart, styles.sectionMenuItemTopDescription]}
515+
style={[
516+
(policy?.errorFields?.avatarURL ?? shouldUseNarrowLayout) ? styles.mb1 : styles.mb3,
517+
shouldUseNarrowLayout ? styles.mtn17 : styles.mtn20,
518+
styles.alignItemsStart,
519+
styles.sectionMenuItemTopDescription,
520+
]}
515521
editIconStyle={styles.smallEditIconWorkspace}
516522
isUsingDefaultAvatar={!policy?.avatarURL}
517523
onImageSelected={(file) => {

0 commit comments

Comments
 (0)