Baptiste Devessier
2026-01-05 11:23:31 +01:00
committed by GitHub
parent 32c0728301
commit 30b3dd1d6f
6 changed files with 52 additions and 5 deletions
@@ -1,11 +1,10 @@
import { useContext } from 'react';
import { FieldContext } from '@/object-record/record-field/ui/contexts/FieldContext';
import { isFieldBoolean } from '@/object-record/record-field/ui/types/guards/isFieldBoolean';
import { isFieldRating } from '@/object-record/record-field/ui/types/guards/isFieldRating';
import { isFieldInputOnly } from '@/object-record/record-field/ui/types/guards/isFieldInputOnly';
export const useIsFieldInputOnly = () => {
const { fieldDefinition } = useContext(FieldContext);
return isFieldBoolean(fieldDefinition) || isFieldRating(fieldDefinition);
return isFieldInputOnly(fieldDefinition);
};
@@ -0,0 +1,10 @@
import { type FieldDefinition } from '@/object-record/record-field/ui/types/FieldDefinition';
import { type FieldMetadata } from '@/object-record/record-field/ui/types/FieldMetadata';
import { isFieldBoolean } from '@/object-record/record-field/ui/types/guards/isFieldBoolean';
import { isFieldRating } from '@/object-record/record-field/ui/types/guards/isFieldRating';
export const isFieldInputOnly = (
fieldDefinition: Pick<FieldDefinition<FieldMetadata>, 'type'>,
): boolean => {
return isFieldBoolean(fieldDefinition) || isFieldRating(fieldDefinition);
};
@@ -266,6 +266,30 @@ export const DEFAULT_COMPANY_RECORD_PAGE_LAYOUT: PageLayout = {
updatedAt: new Date().toISOString(),
deletedAt: null,
},
{
__typename: 'PageLayoutWidget',
id: 'company-widget-visa',
pageLayoutTabId: 'company-tab-fields',
title: 'Visa Sponsorship',
type: WidgetType.FIELD,
objectMetadataId: null,
gridPosition: {
__typename: 'GridPosition',
row: 2,
column: 0,
rowSpan: 1,
columnSpan: 12,
},
configuration: {
__typename: 'FieldConfiguration',
configurationType: WidgetConfigurationType.FIELD,
fieldMetadataId: 'visaSponsorship',
layout: 'FIELD',
},
createdAt: new Date().toISOString(),
updatedAt: new Date().toISOString(),
deletedAt: null,
},
],
},
{
@@ -10,6 +10,7 @@ import {
type GenericFieldContextType,
} from '@/object-record/record-field/ui/contexts/FieldContext';
import { RecordFieldComponentInstanceContext } from '@/object-record/record-field/ui/states/contexts/RecordFieldComponentInstanceContext';
import { isFieldInputOnly } from '@/object-record/record-field/ui/types/guards/isFieldInputOnly';
import { isFieldMorphRelation } from '@/object-record/record-field/ui/types/guards/isFieldMorphRelation';
import { isFieldRelation } from '@/object-record/record-field/ui/types/guards/isFieldRelation';
import { useRecordShowContainerActions } from '@/object-record/record-show/hooks/useRecordShowContainerActions';
@@ -19,11 +20,11 @@ import { FieldWidgetEditAction } from '@/page-layout/widgets/field/components/Fi
import { FieldWidgetRelationEditAction } from '@/page-layout/widgets/field/components/FieldWidgetRelationEditAction';
import { getFieldWidgetInstanceId } from '@/page-layout/widgets/field/utils/getFieldWidgetInstanceId';
import { isFieldWidget } from '@/page-layout/widgets/field/utils/isFieldWidget';
import { useCurrentWidget } from '@/page-layout/widgets/hooks/useCurrentWidget';
import { getObjectPermissionsFromMapByObjectMetadataId } from '@/settings/roles/role-permissions/objects-permissions/utils/getObjectPermissionsFromMapByObjectMetadataId';
import { useLayoutRenderingContext } from '@/ui/layout/contexts/LayoutRenderingContext';
import { useTargetRecord } from '@/ui/layout/contexts/useTargetRecord';
import { assertIsDefinedOrThrow } from 'twenty-shared/utils';
import { useCurrentWidget } from '@/page-layout/widgets/hooks/useCurrentWidget';
export const WidgetActionFieldEdit = () => {
const widget = useCurrentWidget();
@@ -89,6 +90,10 @@ export const WidgetActionFieldEdit = () => {
);
}
if (isFieldInputOnly(fieldDefinition)) {
return null;
}
const recordFieldInputInstanceId = getRecordFieldInputInstanceId({
recordId: targetRecord.id,
fieldName: fieldMetadataItem.name,
@@ -5,6 +5,7 @@ import { useRecordInlineCellContext } from '@/object-record/record-inline-cell/c
import { RecordInlineCellDisplayMode } from '@/object-record/record-inline-cell/components/RecordInlineCellDisplayMode';
import { RecordInlineCellHoveredPortalContent } from '@/object-record/record-inline-cell/components/RecordInlineCellHoveredPortalContent';
import { useInlineCell } from '@/object-record/record-inline-cell/hooks/useInlineCell';
import { FieldWidgetInputContextProvider } from '@/page-layout/widgets/field/components/FieldWidgetInputContextProvider';
import { useOpenFieldWidgetFieldInputEditMode } from '@/page-layout/widgets/field/hooks/useOpenFieldWidgetFieldInputEditMode';
import { useContext } from 'react';
@@ -42,7 +43,13 @@ export const FieldWidgetCellHoveredContent = ({
onMouseLeave={onMouseLeave}
>
<RecordInlineCellDisplayMode isHovered={true} onClick={handleClick}>
{editModeContentOnly ? <FieldInput /> : <FieldDisplay />}
{editModeContentOnly ? (
<FieldWidgetInputContextProvider>
<FieldInput />
</FieldWidgetInputContextProvider>
) : (
<FieldDisplay />
)}
</RecordInlineCellDisplayMode>
</RecordInlineCellHoveredPortalContent>
);
@@ -175,6 +175,8 @@ export const FieldWidgetInlineCell = ({
const RecordInlineCellContextValue: RecordInlineCellContextProps = {
readonly: isReadOnly,
buttonIcon: buttonIcon,
label: fieldDefinition.label,
labelWidth: fieldDefinition.labelWidth,
editModeContent: <FieldInput />,
displayModeContent: <FieldDisplay />,
isDisplayModeFixHeight: isDisplayModeFixHeight,