From 2586d0ec4f3c16e8bafc693c1ce1b1d2ff4101d1 Mon Sep 17 00:00:00 2001 From: Etienne <45695613+etiennejouan@users.noreply.github.com> Date: Mon, 28 Apr 2025 15:30:26 +0200 Subject: [PATCH] fix workflow chips not clickable (#11767) bug introduced in this PR https://github.com/twentyhq/twenty/pull/1174 --- .../src/modules/object-record/components/RecordChip.tsx | 6 +++++- .../object-record/record-field/contexts/FieldContext.ts | 1 + .../meta-types/display/components/ChipFieldDisplay.tsx | 4 ++-- .../display/components/RelationFromManyFieldDisplay.tsx | 8 ++++---- .../display/components/RelationToOneFieldDisplay.tsx | 6 ++++-- .../record-field/meta-types/hooks/useChipFieldDisplay.ts | 4 ++-- .../preview/components/SettingsDataModelFieldPreview.tsx | 3 ++- .../calendar-event-find-many.pre-query.hook.ts | 2 +- 8 files changed, 21 insertions(+), 13 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/components/RecordChip.tsx b/packages/twenty-front/src/modules/object-record/components/RecordChip.tsx index 5163d3fb7..f67b3db68 100644 --- a/packages/twenty-front/src/modules/object-record/components/RecordChip.tsx +++ b/packages/twenty-front/src/modules/object-record/components/RecordChip.tsx @@ -1,4 +1,5 @@ import { useOpenRecordInCommandMenu } from '@/command-menu/hooks/useOpenRecordInCommandMenu'; +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { getLinkToShowPage } from '@/object-metadata/utils/getLinkToShowPage'; import { useRecordChipData } from '@/object-record/hooks/useRecordChipData'; import { recordIndexOpenRecordInState } from '@/object-record/record-index/states/recordIndexOpenRecordInState'; @@ -47,7 +48,10 @@ export const RecordChip = ({ const recordIndexOpenRecordIn = useRecoilValue(recordIndexOpenRecordInState); // TODO temporary until we create a record show page for Workspaces members - if (forceDisableClick) { + if ( + forceDisableClick || + objectNameSingular === CoreObjectNameSingular.WorkspaceMember + ) { return ( void; onCloseEditMode?: () => void; }; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/ChipFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/ChipFieldDisplay.tsx index 0c5768697..cc0cf7f60 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/ChipFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/ChipFieldDisplay.tsx @@ -9,7 +9,7 @@ export const ChipFieldDisplay = () => { objectNameSingular, labelIdentifierLink, isLabelIdentifierCompact, - isReadOnly, + disableChipClick, } = useChipFieldDisplay(); if (!isDefined(recordValue)) { @@ -23,7 +23,7 @@ export const ChipFieldDisplay = () => { size={ChipSize.Small} to={labelIdentifierLink} isLabelHidden={isLabelIdentifierCompact} - forceDisableClick={isReadOnly} + forceDisableClick={disableChipClick} /> ); }; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationFromManyFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationFromManyFieldDisplay.tsx index b76b5c7d2..7b20f91e1 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationFromManyFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationFromManyFieldDisplay.tsx @@ -15,7 +15,7 @@ import { pascalCase } from '~/utils/string/pascalCase'; export const RelationFromManyFieldDisplay = () => { const { fieldValue, fieldDefinition } = useRelationFromManyFieldDisplay(); const { isFocused } = useFieldFocus(); - const { isReadOnly } = useContext(FieldContext); + const { disableChipClick } = useContext(FieldContext); const { fieldName, objectMetadataNameSingular } = fieldDefinition.metadata; @@ -76,7 +76,7 @@ export const RelationFromManyFieldDisplay = () => { key={record.id} objectNameSingular={objectNameSingular} record={record[relationFieldName]} - forceDisableClick={isReadOnly} + forceDisableClick={disableChipClick} /> ); }) @@ -91,7 +91,7 @@ export const RelationFromManyFieldDisplay = () => { key={record.targetObject.id} objectNameSingular={record.targetObjectMetadataItem.nameSingular} record={record.targetObject} - forceDisableClick={isReadOnly} + forceDisableClick={disableChipClick} /> ))} @@ -104,7 +104,7 @@ export const RelationFromManyFieldDisplay = () => { key={record.id} objectNameSingular={objectNameSingular} record={record} - forceDisableClick={isReadOnly} + forceDisableClick={disableChipClick} /> ))} diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationToOneFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationToOneFieldDisplay.tsx index 79d08686b..9ba8033ac 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationToOneFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/RelationToOneFieldDisplay.tsx @@ -9,7 +9,7 @@ export const RelationToOneFieldDisplay = () => { const { fieldValue, fieldDefinition, generateRecordChipData } = useRelationToOneFieldDisplay(); - const { isReadOnly } = useContext(FieldContext); + const { disableChipClick } = useContext(FieldContext); if ( !isDefined(fieldValue) || @@ -28,7 +28,9 @@ export const RelationToOneFieldDisplay = () => { key={recordChipData.recordId} objectNameSingular={recordChipData.objectNameSingular} record={fieldValue} - forceDisableClick={isWorkspaceMemberFieldMetadataRelation || isReadOnly} + forceDisableClick={ + isWorkspaceMemberFieldMetadataRelation || disableChipClick + } /> ); }; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useChipFieldDisplay.ts b/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useChipFieldDisplay.ts index 6b1edd0a9..df37c7571 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useChipFieldDisplay.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useChipFieldDisplay.ts @@ -18,7 +18,7 @@ export const useChipFieldDisplay = () => { isLabelIdentifier, labelIdentifierLink, isLabelIdentifierCompact, - isReadOnly, + disableChipClick, } = useContext(FieldContext); const { chipGeneratorPerObjectPerField } = useContext( @@ -49,6 +49,6 @@ export const useChipFieldDisplay = () => { isLabelIdentifier, labelIdentifierLink, isLabelIdentifierCompact, - isReadOnly, + disableChipClick, }; }; diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelFieldPreview.tsx b/packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelFieldPreview.tsx index 7ecab02b8..11243ea42 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelFieldPreview.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelFieldPreview.tsx @@ -153,7 +153,8 @@ export const SettingsDataModelFieldPreview = ({ }, defaultValue: fieldMetadataItem.defaultValue, }, - isReadOnly: true, + isReadOnly: false, + disableChipClick: true, }} > {fieldMetadataItem.type === FieldMetadataType.BOOLEAN ? ( diff --git a/packages/twenty-server/src/modules/calendar/common/query-hooks/calendar-event/calendar-event-find-many.pre-query.hook.ts b/packages/twenty-server/src/modules/calendar/common/query-hooks/calendar-event/calendar-event-find-many.pre-query.hook.ts index c7554f170..3f623184a 100644 --- a/packages/twenty-server/src/modules/calendar/common/query-hooks/calendar-event/calendar-event-find-many.pre-query.hook.ts +++ b/packages/twenty-server/src/modules/calendar/common/query-hooks/calendar-event/calendar-event-find-many.pre-query.hook.ts @@ -4,10 +4,10 @@ import { WorkspaceQueryHookInstance } from 'src/engine/api/graphql/workspace-que import { FindManyResolverArgs } from 'src/engine/api/graphql/workspace-resolver-builder/interfaces/workspace-resolvers-builder.interface'; import { WorkspaceQueryHook } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/decorators/workspace-query-hook.decorator'; +import { AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type'; import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager'; import { CanAccessCalendarEventService } from 'src/modules/calendar/common/query-hooks/calendar-event/services/can-access-calendar-event.service'; import { CalendarChannelEventAssociationWorkspaceEntity } from 'src/modules/calendar/common/standard-objects/calendar-channel-event-association.workspace-entity'; -import { AuthContext } from 'src/engine/core-modules/auth/types/auth-context.type'; @WorkspaceQueryHook({ key: `calendarEvent.findMany`,