From 9aa091880ccd5ab7a563b86661c35857b06d952e Mon Sep 17 00:00:00 2001 From: cretadn22 Date: Wed, 18 Sep 2024 20:52:51 +0700 Subject: [PATCH 1/2] add gbr to message --- src/components/ReportActionItem/TaskPreview.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/TaskPreview.tsx b/src/components/ReportActionItem/TaskPreview.tsx index 7a6e4942b178..455328c6042e 100644 --- a/src/components/ReportActionItem/TaskPreview.tsx +++ b/src/components/ReportActionItem/TaskPreview.tsx @@ -14,6 +14,7 @@ import withCurrentUserPersonalDetails from '@components/withCurrentUserPersonalD import type {WithCurrentUserPersonalDetailsProps} from '@components/withCurrentUserPersonalDetails'; import useLocalize from '@hooks/useLocalize'; import useStyleUtils from '@hooks/useStyleUtils'; +import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import ControlSelection from '@libs/ControlSelection'; import * as DeviceCapabilities from '@libs/DeviceCapabilities'; @@ -65,6 +66,7 @@ function TaskPreview({taskReport, taskReportID, action, contextMenuAnchor, chatR const styles = useThemeStyles(); const StyleUtils = useStyleUtils(); const {translate} = useLocalize(); + const theme = useTheme(); // The reportAction might not contain details regarding the taskReport // Only the direct parent reportAction will contain details about the taskReport @@ -77,7 +79,7 @@ function TaskPreview({taskReport, taskReportID, action, contextMenuAnchor, chatR const [avatar] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {selector: (personalDetails) => personalDetails?.[taskAssigneeAccountID]?.avatar}); const htmlForTaskPreview = `${taskTitle}`; const isDeletedParentAction = ReportUtils.isCanceledTaskReport(taskReport, action); - + const shouldShowGreenDotIndicator = ReportUtils.isOpenTaskReport(taskReport, action) && ReportUtils.isReportManager(taskReport); if (isDeletedParentAction) { return ${translate('parentReportAction.deletedTask')}`} />; } @@ -123,6 +125,14 @@ function TaskPreview({taskReport, taskReportID, action, contextMenuAnchor, chatR ${htmlForTaskPreview}` : htmlForTaskPreview} /> + {shouldShowGreenDotIndicator && ( + + + + )} Date: Wed, 18 Sep 2024 21:13:41 +0700 Subject: [PATCH 2/2] use Onyx --- .../ReportActionItem/TaskPreview.tsx | 57 +++++++------------ 1 file changed, 22 insertions(+), 35 deletions(-) diff --git a/src/components/ReportActionItem/TaskPreview.tsx b/src/components/ReportActionItem/TaskPreview.tsx index 455328c6042e..ccdb227014fc 100644 --- a/src/components/ReportActionItem/TaskPreview.tsx +++ b/src/components/ReportActionItem/TaskPreview.tsx @@ -1,7 +1,7 @@ import {Str} from 'expensify-common'; import React from 'react'; import {View} from 'react-native'; -import {useOnyx, withOnyx} from 'react-native-onyx'; +import {useOnyx} from 'react-native-onyx'; import type {OnyxEntry} from 'react-native-onyx'; import Avatar from '@components/Avatar'; import Checkbox from '@components/Checkbox'; @@ -28,45 +28,38 @@ import * as Task from '@userActions/Task'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; -import type {Report, ReportAction} from '@src/types/onyx'; +import type {ReportAction} from '@src/types/onyx'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; -type TaskPreviewOnyxProps = { - /* Onyx Props */ +type TaskPreviewProps = WithCurrentUserPersonalDetailsProps & { + /** The ID of the associated policy */ + // eslint-disable-next-line react/no-unused-prop-types + policyID: string; + /** The ID of the associated taskReport */ + taskReportID: string; - /* current report of TaskPreview */ - taskReport: OnyxEntry; -}; - -type TaskPreviewProps = WithCurrentUserPersonalDetailsProps & - TaskPreviewOnyxProps & { - /** The ID of the associated policy */ - // eslint-disable-next-line react/no-unused-prop-types - policyID: string; - /** The ID of the associated taskReport */ - taskReportID: string; + /** Whether the task preview is hovered so we can modify its style */ + isHovered: boolean; - /** Whether the task preview is hovered so we can modify its style */ - isHovered: boolean; + /** The linked reportAction */ + action: OnyxEntry; - /** The linked reportAction */ - action: OnyxEntry; + /** The chat report associated with taskReport */ + chatReportID: string; - /** The chat report associated with taskReport */ - chatReportID: string; + /** Popover context menu anchor, used for showing context menu */ + contextMenuAnchor: ContextMenuAnchor; - /** Popover context menu anchor, used for showing context menu */ - contextMenuAnchor: ContextMenuAnchor; - - /** Callback for updating context menu active state, used for showing context menu */ - checkIfContextMenuActive: () => void; - }; + /** Callback for updating context menu active state, used for showing context menu */ + checkIfContextMenuActive: () => void; +}; -function TaskPreview({taskReport, taskReportID, action, contextMenuAnchor, chatReportID, checkIfContextMenuActive, currentUserPersonalDetails, isHovered = false}: TaskPreviewProps) { +function TaskPreview({taskReportID, action, contextMenuAnchor, chatReportID, checkIfContextMenuActive, currentUserPersonalDetails, isHovered = false}: TaskPreviewProps) { const styles = useThemeStyles(); const StyleUtils = useStyleUtils(); const {translate} = useLocalize(); const theme = useTheme(); + const [taskReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${taskReportID}`); // The reportAction might not contain details regarding the taskReport // Only the direct parent reportAction will contain details about the taskReport @@ -144,10 +137,4 @@ function TaskPreview({taskReport, taskReportID, action, contextMenuAnchor, chatR TaskPreview.displayName = 'TaskPreview'; -export default withCurrentUserPersonalDetails( - withOnyx({ - taskReport: { - key: ({taskReportID}) => `${ONYXKEYS.COLLECTION.REPORT}${taskReportID}`, - }, - })(TaskPreview), -); +export default withCurrentUserPersonalDetails(TaskPreview);