From a2d53b3ce6a210f36968eb15cf2f4b691f035b10 Mon Sep 17 00:00:00 2001 From: Pau Date: Tue, 29 Oct 2024 17:23:51 +0100 Subject: [PATCH] fix: soft deleted records are read only --- .../record-show/components/FieldsCard.tsx | 3 ++- .../record-show/components/SummaryCard.tsx | 3 ++- .../components/RecordTableRowWrapper.tsx | 10 ++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx b/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx index 22f77e501dd8b..80e1262c48939 100644 --- a/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx +++ b/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx @@ -82,7 +82,8 @@ export const FieldsCard = ({ objectNameSingular !== CoreObjectNameSingular.Task && fieldMetadataItem.name !== 'taskTargets', ); - const isReadOnly = objectMetadataItem.isRemote; + const isReadOnly = + objectMetadataItem.isRemote || !!recordFromStore?.deletedAt; return ( <> diff --git a/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx b/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx index 05b76a1e939c2..ba7a1fefa413a 100644 --- a/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx +++ b/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx @@ -45,7 +45,8 @@ export const SummaryCard = ({ const { Icon, IconColor } = useGetStandardObjectIcon(objectNameSingular); const isMobile = useIsMobile() || isInRightDrawer; - const isReadOnly = objectMetadataItem.isRemote; + const isReadOnly = + objectMetadataItem.isRemote || !!recordFromStore?.deletedAt; if (isNewRightDrawerItemLoading || !isDefined(recordFromStore)) { return ; diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-row/components/RecordTableRowWrapper.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-row/components/RecordTableRowWrapper.tsx index ef0b399fd457d..968bf040b9bca 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-row/components/RecordTableRowWrapper.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-row/components/RecordTableRowWrapper.tsx @@ -2,10 +2,11 @@ import { useTheme } from '@emotion/react'; import { Draggable } from '@hello-pangea/dnd'; import { ReactNode, useContext, useEffect } from 'react'; import { useInView } from 'react-intersection-observer'; -import { useRecoilValue } from 'recoil'; +import { useRecoilState, useRecoilValue } from 'recoil'; import { getBasePathToShowPage } from '@/object-metadata/utils/getBasePathToShowPage'; import { RecordIndexRootPropsContext } from '@/object-record/record-index/contexts/RecordIndexRootPropsContext'; +import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; import { RecordTableContext } from '@/object-record/record-table/contexts/RecordTableContext'; import { RecordTableRowContext } from '@/object-record/record-table/contexts/RecordTableRowContext'; import { useRecordTableStates } from '@/object-record/record-table/hooks/internal/useRecordTableStates'; @@ -35,6 +36,10 @@ export const RecordTableRowWrapper = ({ RecordTableWithWrappersScrollWrapperContext, ); + const [recordFromStore] = useRecoilState( + recordStoreFamilyState(recordId) + ); + const { ref: elementRef, inView } = useInView({ root: scrollWrapperRef.ref.current?.querySelector( '[data-overlayscrollbars-viewport]', @@ -82,7 +87,8 @@ export const RecordTableRowWrapper = ({ }) + recordId, objectNameSingular: objectMetadataItem.nameSingular, isSelected: currentRowSelected, - isReadOnly: objectMetadataItem.isRemote ?? false, + isReadOnly: + objectMetadataItem.isRemote || !!recordFromStore?.deletedAt, isPendingRow, isDragging: draggableSnapshot.isDragging, dragHandleProps: draggableProvided.dragHandleProps,