Skip to content

Commit

Permalink
Merge pull request #21240 from Expensify/revert-20738-yuwen-copilot
Browse files Browse the repository at this point in the history
  • Loading branch information
francoisl authored Jun 21, 2023
2 parents 003e5e5 + 34df808 commit 98bb603
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 73 deletions.
43 changes: 12 additions & 31 deletions src/components/UserDetailsTooltip/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,49 +9,33 @@ import Tooltip from '../Tooltip';
import {propTypes, defaultProps} from './userDetailsTooltipPropTypes';
import styles from '../../styles/styles';
import ONYXKEYS from '../../ONYXKEYS';
import withLocalize from '../withLocalize';
import compose from '../../libs/compose';
import * as UserUtils from '../../libs/UserUtils';

function UserDetailsTooltip(props) {
const userDetails = lodashGet(props.personalDetailsList, props.accountID, props.fallbackUserDetails);
let userDisplayName = userDetails.displayName ? userDetails.displayName.trim() : '';
let userLogin = (userDetails.login || '').trim() && !_.isEqual(userDetails.login, userDetails.displayName) ? Str.removeSMSDomain(userDetails.login) : '';
let userAvatar = userDetails.avatar;
let userAccountID = props.accountID;

// We replace the actor's email, name, and avatar with the Copilot manually for now. This will be improved upon when
// the Copilot feature is implemented.
if (props.delegateAccountID) {
const delegateUserDetails = lodashGet(props.personalDetailsList, props.delegateAccountID, {});
const delegateUserDisplayName = delegateUserDetails.displayName ? delegateUserDetails.displayName.trim() : '';
userDisplayName = `${delegateUserDisplayName} (${props.translate('reportAction.asCopilot')} ${userDisplayName})`;
userLogin = delegateUserDetails.login;
userAvatar = delegateUserDetails.avatar;
userAccountID = props.delegateAccountID;
}

const renderTooltipContent = useCallback(
() => (
<View style={[styles.alignItemsCenter, styles.ph2, styles.pv2]}>
<View style={styles.emptyAvatar}>
<Avatar
containerStyles={[styles.actionAvatar]}
source={UserUtils.getAvatar(userAvatar, userAccountID)}
source={UserUtils.getAvatar(userDetails.avatar, userDetails.accountID)}
/>
</View>

<Text style={[styles.mt2, styles.textMicroBold, styles.textReactionSenders, styles.textAlignCenter]}>{userDisplayName}</Text>
<Text style={[styles.mt2, styles.textMicroBold, styles.textReactionSenders, styles.textAlignCenter]}>
{String(userDetails.displayName).trim() ? userDetails.displayName : ''}
</Text>

<Text style={[styles.textMicro, styles.fontColorReactionLabel]}>
{(userLogin || '').trim() && !_.isEqual(userLogin, userDisplayName) ? Str.removeSMSDomain(userLogin) : ''}
{String(userDetails.login || '').trim() && !_.isEqual(userDetails.login, userDetails.displayName) ? Str.removeSMSDomain(userDetails.login) : ''}
</Text>
</View>
),
[userAvatar, userDisplayName, userLogin, userAccountID],
[userDetails.avatar, userDetails.displayName, userDetails.login, userDetails.accountID],
);

if (!userDisplayName && !userLogin) {
if (!userDetails.displayName && !userDetails.login) {
return props.children;
}

Expand All @@ -62,11 +46,8 @@ UserDetailsTooltip.propTypes = propTypes;
UserDetailsTooltip.defaultProps = defaultProps;
UserDetailsTooltip.displayName = 'UserDetailsTooltip';

export default compose(
withLocalize,
withOnyx({
personalDetailsList: {
key: ONYXKEYS.PERSONAL_DETAILS_LIST,
},
}),
)(UserDetailsTooltip);
export default withOnyx({
personalDetailsList: {
key: ONYXKEYS.PERSONAL_DETAILS_LIST,
},
})(UserDetailsTooltip);
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import PropTypes from 'prop-types';
import personalDetailsPropType from '../../pages/personalDetailsPropType';
import {withLocalizePropTypes} from '../withLocalize';

const propTypes = {
/** User's Account ID */
Expand All @@ -18,19 +17,12 @@ const propTypes = {
children: PropTypes.node.isRequired,
/** List of personalDetails (keyed by accountID) */
personalDetailsList: PropTypes.objectOf(personalDetailsPropType),

/** The accountID of the copilot who took this action on behalf of the user */
delegateAccountID: PropTypes.number,

/** Localization props */
...withLocalizePropTypes,
};

const defaultProps = {
accountID: '',
fallbackUserDetails: {displayName: '', login: '', avatar: ''},
personalDetailsList: {},
delegateAccountID: 0,
};

export {propTypes, defaultProps};
3 changes: 0 additions & 3 deletions src/languages/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -299,9 +299,6 @@ export default {
sayHello: 'Say hello!',
usePlusButton: '\n\nYou can also use the + button below to send or request money!',
},
reportAction: {
asCopilot: 'as copilot for',
},
mentionSuggestions: {
hereAlternateText: 'Notify everyone online in this room',
},
Expand Down
3 changes: 0 additions & 3 deletions src/languages/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -298,9 +298,6 @@ export default {
sayHello: '¡Saluda!',
usePlusButton: '\n\n¡También puedes usar el botón + de abajo para enviar o pedir dinero!',
},
reportAction: {
asCopilot: 'como copiloto de',
},
mentionSuggestions: {
hereAlternateText: 'Notificar a todos los que estén en linea de esta sala',
},
Expand Down
9 changes: 1 addition & 8 deletions src/pages/home/report/ReportActionItemFragment.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,6 @@ const propTypes = {
// Additional styles to add after local styles
style: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),

/** The accountID of the copilot who took this action on behalf of the user */
delegateAccountID: PropTypes.number,

...windowDimensionsPropTypes,

/** localization props */
Expand All @@ -78,7 +75,6 @@ const defaultProps = {
isSingleLine: false,
source: '',
style: [],
delegateAccountID: 0,
};

function ReportActionItemFragment(props) {
Expand Down Expand Up @@ -149,10 +145,7 @@ function ReportActionItemFragment(props) {
}
case 'TEXT':
return (
<UserDetailsTooltip
accountID={props.accountID}
delegateAccountID={props.delegateAccountID}
>
<UserDetailsTooltip accountID={props.accountID}>
<Text
numberOfLines={props.isSingleLine ? 1 : undefined}
style={[styles.chatItemMessageHeaderSender, props.isSingleLine ? styles.pre : styles.preWrap]}
Expand Down
25 changes: 5 additions & 20 deletions src/pages/home/report/ReportActionItemSingle.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,19 +69,8 @@ const showUserDetails = (accountID) => {
function ReportActionItemSingle(props) {
const actorEmail = lodashGet(props.action, 'actorEmail', '').replace(CONST.REGEX.MERGED_ACCOUNT_PREFIX, '');
const actorAccountID = props.action.actorAccountID;
let {avatar, displayName} = props.personalDetailsList[actorAccountID] || {};
const {pendingFields} = props.personalDetailsList[actorAccountID] || {};

// We replace the actor's email, name, and avatar with the Copilot manually for now. This will be improved upon when
// the Copilot feature is implemented.
if (props.action.delegateAccountID) {
const delegateDetails = props.personalDetailsList[props.action.delegateAccountID];
const delegateDisplayName = delegateDetails.displayName;
displayName = `${delegateDisplayName} (${props.translate('reportAction.asCopilot')} ${displayName})`;
avatar = delegateDetails.avatar;
}

const avatarSource = UserUtils.getAvatar(avatar, props.action.delegateAccountID ? props.action.delegateAccountID : actorAccountID);
const {avatar, displayName, pendingFields} = props.personalDetailsList[actorAccountID] || {};
const avatarSource = UserUtils.getAvatar(avatar, actorAccountID);

// Since the display name for a report action message is delivered with the report history as an array of fragments
// we'll need to take the displayName from personal details and have it be in the same format for now. Eventually,
Expand All @@ -101,7 +90,7 @@ function ReportActionItemSingle(props) {
style={[styles.alignSelfStart, styles.mr3]}
onPressIn={ControlSelection.block}
onPressOut={ControlSelection.unblock}
onPress={() => showUserDetails(props.action.delegateAccountID ? props.action.delegateAccountID : actorAccountID)}
onPress={() => showUserDetails(actorAccountID)}
accessibilityLabel={actorEmail}
accessibilityRole="button"
>
Expand All @@ -115,10 +104,7 @@ function ReportActionItemSingle(props) {
noMargin
/>
) : (
<UserDetailsTooltip
accountID={actorAccountID}
delegateAccountID={props.action.delegateAccountID}
>
<UserDetailsTooltip accountID={actorAccountID}>
<View>
<Avatar
containerStyles={[styles.actionAvatar]}
Expand All @@ -136,7 +122,7 @@ function ReportActionItemSingle(props) {
style={[styles.flexShrink1, styles.mr1]}
onPressIn={ControlSelection.block}
onPressOut={ControlSelection.unblock}
onPress={() => showUserDetails(props.action.delegateAccountID ? props.action.delegateAccountID : actorAccountID)}
onPress={() => showUserDetails(actorAccountID)}
accessibilityLabel={actorEmail}
accessibilityRole="button"
>
Expand All @@ -147,7 +133,6 @@ function ReportActionItemSingle(props) {
fragment={fragment}
isAttachment={props.action.isAttachment}
isLoading={props.action.isLoading}
delegateAccountID={props.action.delegateAccountID}
isSingleLine
/>
))}
Expand Down

0 comments on commit 98bb603

Please sign in to comment.