diff --git a/src/components/ReportActionItem/TaskPreview.js b/src/components/ReportActionItem/TaskPreview.js index ad437da9cb7c..621f3b90cbc3 100644 --- a/src/components/ReportActionItem/TaskPreview.js +++ b/src/components/ReportActionItem/TaskPreview.js @@ -2,6 +2,7 @@ import React from 'react'; import {View} from 'react-native'; import PropTypes from 'prop-types'; import {withOnyx} from 'react-native-onyx'; +import lodashGet from 'lodash/get'; import _ from 'underscore'; import compose from '../../libs/compose'; import styles from '../../styles/styles'; @@ -19,8 +20,12 @@ import reportActionPropTypes from '../../pages/home/report/reportActionPropTypes import * as TaskUtils from '../../libs/actions/Task'; import RenderHTML from '../RenderHTML'; import PressableWithoutFeedback from '../Pressable/PressableWithoutFeedback'; +import personalDetailsPropType from '../../pages/personalDetailsPropType'; const propTypes = { + /** All personal details asssociated with user */ + personalDetailsList: personalDetailsPropType, + /** The ID of the associated taskReport */ taskReportID: PropTypes.string.isRequired, @@ -47,6 +52,7 @@ const propTypes = { }; const defaultProps = { + personalDetailsList: {}, taskReport: {}, isHovered: false, }; @@ -59,7 +65,8 @@ function TaskPreview(props) { ? props.taskReport.stateNum === CONST.REPORT.STATE_NUM.SUBMITTED && props.taskReport.statusNum === CONST.REPORT.STATUS.APPROVED : props.action.childStateNum === CONST.REPORT.STATE_NUM.SUBMITTED && props.action.childStatusNum === CONST.REPORT.STATUS.APPROVED; const taskTitle = props.taskReport.reportName || props.action.childReportName; - const taskAssignee = props.taskReport.managerEmail || props.action.childManagerEmail; + const taskAssigneeAccountID = TaskUtils.getTaskAssigneeAccountID(props.taskReport); + const taskAssignee = lodashGet(props.personalDetailsList, [taskAssigneeAccountID, 'login'], lodashGet(props.personalDetailsList, [taskAssigneeAccountID, 'displayName'], '')); const htmlForTaskPreview = taskAssignee ? `@${taskAssignee} ${taskTitle}` : `${taskTitle}`; return ( @@ -106,5 +113,8 @@ export default compose( taskReport: { key: ({taskReportID}) => `${ONYXKEYS.COLLECTION.REPORT}${taskReportID}`, }, + personalDetailsList: { + key: ONYXKEYS.PERSONAL_DETAILS_LIST, + }, }), )(TaskPreview); diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js index 1631b71d6049..e10279579c09 100644 --- a/src/libs/ReportUtils.js +++ b/src/libs/ReportUtils.js @@ -1274,7 +1274,6 @@ function buildOptimisticTaskCommentReportAction(taskReportID, taskTitle, taskAss reportAction.reportAction.parentReportID = parentReportID; reportAction.reportAction.childType = CONST.REPORT.TYPE.TASK; reportAction.reportAction.childReportName = taskTitle; - reportAction.reportAction.childManagerEmail = taskAssignee; reportAction.reportAction.childManagerAccountID = taskAssigneeAccountID; reportAction.reportAction.childStatusNum = CONST.REPORT.STATUS.OPEN; reportAction.reportAction.childStateNum = CONST.REPORT.STATE_NUM.OPEN; diff --git a/src/libs/actions/Task.js b/src/libs/actions/Task.js index 3d19a632a634..7a6b28510b09 100644 --- a/src/libs/actions/Task.js +++ b/src/libs/actions/Task.js @@ -10,7 +10,6 @@ import ROUTES from '../../ROUTES'; import CONST from '../../CONST'; import DateUtils from '../DateUtils'; import * as UserUtils from '../UserUtils'; -import * as PersonalDetailsUtils from '../PersonalDetailsUtils'; import * as ReportActionsUtils from '../ReportActionsUtils'; /** @@ -648,13 +647,7 @@ function getTaskAssigneeAccountID(taskReport) { } const reportAction = ReportActionsUtils.getParentReportAction(taskReport); - const childManagerEmail = lodashGet(reportAction, 'childManagerEmail', ''); - - if (!childManagerEmail) { - return null; - } - - return PersonalDetailsUtils.getAccountIDsByLogins([childManagerEmail])[0]; + return lodashGet(reportAction, 'childManagerAccountID'); } /** diff --git a/src/pages/workspace/WorkspaceMembersPage.js b/src/pages/workspace/WorkspaceMembersPage.js index 2a5cecb1cf94..95db063a8ac3 100644 --- a/src/pages/workspace/WorkspaceMembersPage.js +++ b/src/pages/workspace/WorkspaceMembersPage.js @@ -32,7 +32,7 @@ import * as UserUtils from '../../libs/UserUtils'; import FormHelpMessage from '../../components/FormHelpMessage'; import TextInput from '../../components/TextInput'; import KeyboardDismissingFlatList from '../../components/KeyboardDismissingFlatList'; -import withCurrentUserPersonalDetails from '../../components/withCurrentUserPersonalDetails'; +import withCurrentUserPersonalDetails, {withCurrentUserPersonalDetailsPropTypes, withCurrentUserPersonalDetailsDefaultProps} from '../../components/withCurrentUserPersonalDetails'; import * as PolicyUtils from '../../libs/PolicyUtils'; import PressableWithFeedback from '../../components/Pressable/PressableWithFeedback'; import usePrevious from '../../hooks/usePrevious'; @@ -40,7 +40,7 @@ import Log from '../../libs/Log'; import * as PersonalDetailsUtils from '../../libs/PersonalDetailsUtils'; const propTypes = { - /** The personal details of the person who is logged in */ + /** All personal details asssociated with user */ personalDetails: personalDetailsPropType, /** URL Route params */ @@ -61,6 +61,7 @@ const propTypes = { ...policyPropTypes, ...withLocalizePropTypes, ...windowDimensionsPropTypes, + ...withCurrentUserPersonalDetailsPropTypes, network: networkPropTypes.isRequired, }; @@ -70,6 +71,7 @@ const defaultProps = { accountID: 0, }, ...policyDefaultProps, + ...withCurrentUserPersonalDetailsDefaultProps, }; function WorkspaceMembersPage(props) {