fix workflow chips not clickable (#11767)

bug introduced in this PR https://github.com/twentyhq/twenty/pull/1174
This commit is contained in:
Etienne
2025-04-28 15:30:26 +02:00
committed by GitHub
parent 14afa57699
commit 2586d0ec4f
8 changed files with 21 additions and 13 deletions

View File

@ -1,4 +1,5 @@
import { useOpenRecordInCommandMenu } from '@/command-menu/hooks/useOpenRecordInCommandMenu'; import { useOpenRecordInCommandMenu } from '@/command-menu/hooks/useOpenRecordInCommandMenu';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { getLinkToShowPage } from '@/object-metadata/utils/getLinkToShowPage'; import { getLinkToShowPage } from '@/object-metadata/utils/getLinkToShowPage';
import { useRecordChipData } from '@/object-record/hooks/useRecordChipData'; import { useRecordChipData } from '@/object-record/hooks/useRecordChipData';
import { recordIndexOpenRecordInState } from '@/object-record/record-index/states/recordIndexOpenRecordInState'; import { recordIndexOpenRecordInState } from '@/object-record/record-index/states/recordIndexOpenRecordInState';
@ -47,7 +48,10 @@ export const RecordChip = ({
const recordIndexOpenRecordIn = useRecoilValue(recordIndexOpenRecordInState); const recordIndexOpenRecordIn = useRecoilValue(recordIndexOpenRecordInState);
// TODO temporary until we create a record show page for Workspaces members // TODO temporary until we create a record show page for Workspaces members
if (forceDisableClick) { if (
forceDisableClick ||
objectNameSingular === CoreObjectNameSingular.WorkspaceMember
) {
return ( return (
<AvatarChip <AvatarChip
size={size} size={size}

View File

@ -33,6 +33,7 @@ export type GenericFieldContextType = {
displayedMaxRows?: number; displayedMaxRows?: number;
isDisplayModeFixHeight?: boolean; isDisplayModeFixHeight?: boolean;
isReadOnly: boolean; isReadOnly: boolean;
disableChipClick?: boolean;
onOpenEditMode?: () => void; onOpenEditMode?: () => void;
onCloseEditMode?: () => void; onCloseEditMode?: () => void;
}; };

View File

@ -9,7 +9,7 @@ export const ChipFieldDisplay = () => {
objectNameSingular, objectNameSingular,
labelIdentifierLink, labelIdentifierLink,
isLabelIdentifierCompact, isLabelIdentifierCompact,
isReadOnly, disableChipClick,
} = useChipFieldDisplay(); } = useChipFieldDisplay();
if (!isDefined(recordValue)) { if (!isDefined(recordValue)) {
@ -23,7 +23,7 @@ export const ChipFieldDisplay = () => {
size={ChipSize.Small} size={ChipSize.Small}
to={labelIdentifierLink} to={labelIdentifierLink}
isLabelHidden={isLabelIdentifierCompact} isLabelHidden={isLabelIdentifierCompact}
forceDisableClick={isReadOnly} forceDisableClick={disableChipClick}
/> />
); );
}; };

View File

@ -15,7 +15,7 @@ import { pascalCase } from '~/utils/string/pascalCase';
export const RelationFromManyFieldDisplay = () => { export const RelationFromManyFieldDisplay = () => {
const { fieldValue, fieldDefinition } = useRelationFromManyFieldDisplay(); const { fieldValue, fieldDefinition } = useRelationFromManyFieldDisplay();
const { isFocused } = useFieldFocus(); const { isFocused } = useFieldFocus();
const { isReadOnly } = useContext(FieldContext); const { disableChipClick } = useContext(FieldContext);
const { fieldName, objectMetadataNameSingular } = fieldDefinition.metadata; const { fieldName, objectMetadataNameSingular } = fieldDefinition.metadata;
@ -76,7 +76,7 @@ export const RelationFromManyFieldDisplay = () => {
key={record.id} key={record.id}
objectNameSingular={objectNameSingular} objectNameSingular={objectNameSingular}
record={record[relationFieldName]} record={record[relationFieldName]}
forceDisableClick={isReadOnly} forceDisableClick={disableChipClick}
/> />
); );
}) })
@ -91,7 +91,7 @@ export const RelationFromManyFieldDisplay = () => {
key={record.targetObject.id} key={record.targetObject.id}
objectNameSingular={record.targetObjectMetadataItem.nameSingular} objectNameSingular={record.targetObjectMetadataItem.nameSingular}
record={record.targetObject} record={record.targetObject}
forceDisableClick={isReadOnly} forceDisableClick={disableChipClick}
/> />
))} ))}
</ExpandableList> </ExpandableList>
@ -104,7 +104,7 @@ export const RelationFromManyFieldDisplay = () => {
key={record.id} key={record.id}
objectNameSingular={objectNameSingular} objectNameSingular={objectNameSingular}
record={record} record={record}
forceDisableClick={isReadOnly} forceDisableClick={disableChipClick}
/> />
))} ))}
</ExpandableList> </ExpandableList>

View File

@ -9,7 +9,7 @@ export const RelationToOneFieldDisplay = () => {
const { fieldValue, fieldDefinition, generateRecordChipData } = const { fieldValue, fieldDefinition, generateRecordChipData } =
useRelationToOneFieldDisplay(); useRelationToOneFieldDisplay();
const { isReadOnly } = useContext(FieldContext); const { disableChipClick } = useContext(FieldContext);
if ( if (
!isDefined(fieldValue) || !isDefined(fieldValue) ||
@ -28,7 +28,9 @@ export const RelationToOneFieldDisplay = () => {
key={recordChipData.recordId} key={recordChipData.recordId}
objectNameSingular={recordChipData.objectNameSingular} objectNameSingular={recordChipData.objectNameSingular}
record={fieldValue} record={fieldValue}
forceDisableClick={isWorkspaceMemberFieldMetadataRelation || isReadOnly} forceDisableClick={
isWorkspaceMemberFieldMetadataRelation || disableChipClick
}
/> />
); );
}; };

View File

@ -18,7 +18,7 @@ export const useChipFieldDisplay = () => {
isLabelIdentifier, isLabelIdentifier,
labelIdentifierLink, labelIdentifierLink,
isLabelIdentifierCompact, isLabelIdentifierCompact,
isReadOnly, disableChipClick,
} = useContext(FieldContext); } = useContext(FieldContext);
const { chipGeneratorPerObjectPerField } = useContext( const { chipGeneratorPerObjectPerField } = useContext(
@ -49,6 +49,6 @@ export const useChipFieldDisplay = () => {
isLabelIdentifier, isLabelIdentifier,
labelIdentifierLink, labelIdentifierLink,
isLabelIdentifierCompact, isLabelIdentifierCompact,
isReadOnly, disableChipClick,
}; };
}; };

View File

@ -153,7 +153,8 @@ export const SettingsDataModelFieldPreview = ({
}, },
defaultValue: fieldMetadataItem.defaultValue, defaultValue: fieldMetadataItem.defaultValue,
}, },
isReadOnly: true, isReadOnly: false,
disableChipClick: true,
}} }}
> >
{fieldMetadataItem.type === FieldMetadataType.BOOLEAN ? ( {fieldMetadataItem.type === FieldMetadataType.BOOLEAN ? (

View File

@ -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 { 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 { 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 { 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 { 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 { 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({ @WorkspaceQueryHook({
key: `calendarEvent.findMany`, key: `calendarEvent.findMany`,