From 2c7bd23abe3bc402ad1392bafa3125ac6f46dc2d Mon Sep 17 00:00:00 2001 From: cretadn22 Date: Wed, 18 Sep 2024 21:13:41 +0700 Subject: [PATCH] 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);