feat: disable Standard field edition in Relation field form (#2604)
* feat: disable Standard field edition in Relation field form Closes #2584 * refactor: code review
This commit is contained in:
@ -18,6 +18,7 @@ export type SettingsObjectFieldRelationFormValues = Partial<{
|
|||||||
}>;
|
}>;
|
||||||
|
|
||||||
type SettingsObjectFieldRelationFormProps = {
|
type SettingsObjectFieldRelationFormProps = {
|
||||||
|
disableFieldEdition?: boolean;
|
||||||
disableRelationEdition?: boolean;
|
disableRelationEdition?: boolean;
|
||||||
onChange: (values: SettingsObjectFieldRelationFormValues) => void;
|
onChange: (values: SettingsObjectFieldRelationFormValues) => void;
|
||||||
values?: SettingsObjectFieldRelationFormValues;
|
values?: SettingsObjectFieldRelationFormValues;
|
||||||
@ -46,6 +47,7 @@ const StyledInputsContainer = styled.div`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
export const SettingsObjectFieldRelationForm = ({
|
export const SettingsObjectFieldRelationForm = ({
|
||||||
|
disableFieldEdition,
|
||||||
disableRelationEdition,
|
disableRelationEdition,
|
||||||
onChange,
|
onChange,
|
||||||
values,
|
values,
|
||||||
@ -96,6 +98,7 @@ export const SettingsObjectFieldRelationForm = ({
|
|||||||
</StyledInputsLabel>
|
</StyledInputsLabel>
|
||||||
<StyledInputsContainer>
|
<StyledInputsContainer>
|
||||||
<IconPicker
|
<IconPicker
|
||||||
|
disabled={disableFieldEdition}
|
||||||
dropdownScopeId="field-destination-icon-picker"
|
dropdownScopeId="field-destination-icon-picker"
|
||||||
selectedIconKey={values?.field?.icon || undefined}
|
selectedIconKey={values?.field?.icon || undefined}
|
||||||
onChange={(value) =>
|
onChange={(value) =>
|
||||||
@ -106,6 +109,7 @@ export const SettingsObjectFieldRelationForm = ({
|
|||||||
variant="primary"
|
variant="primary"
|
||||||
/>
|
/>
|
||||||
<TextInput
|
<TextInput
|
||||||
|
disabled={disableFieldEdition}
|
||||||
placeholder="Field name"
|
placeholder="Field name"
|
||||||
value={values?.field?.label || ''}
|
value={values?.field?.label || ''}
|
||||||
onChange={(value) => {
|
onChange={(value) => {
|
||||||
|
|||||||
@ -27,7 +27,7 @@ type SettingsObjectFieldTypeSelectSectionProps = {
|
|||||||
excludedFieldTypes?: FieldMetadataType[];
|
excludedFieldTypes?: FieldMetadataType[];
|
||||||
fieldMetadata: Pick<Field, 'icon' | 'label'> & { id?: string };
|
fieldMetadata: Pick<Field, 'icon' | 'label'> & { id?: string };
|
||||||
onChange: (values: SettingsObjectFieldTypeSelectSectionFormValues) => void;
|
onChange: (values: SettingsObjectFieldTypeSelectSectionFormValues) => void;
|
||||||
relationFieldMetadataId?: string;
|
relationFieldMetadata?: Pick<Field, 'id' | 'isCustom'>;
|
||||||
values?: SettingsObjectFieldTypeSelectSectionFormValues;
|
values?: SettingsObjectFieldTypeSelectSectionFormValues;
|
||||||
} & Pick<SettingsObjectFieldPreviewProps, 'objectMetadataId'>;
|
} & Pick<SettingsObjectFieldPreviewProps, 'objectMetadataId'>;
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ export const SettingsObjectFieldTypeSelectSection = ({
|
|||||||
fieldMetadata,
|
fieldMetadata,
|
||||||
objectMetadataId,
|
objectMetadataId,
|
||||||
onChange,
|
onChange,
|
||||||
relationFieldMetadataId,
|
relationFieldMetadata,
|
||||||
values,
|
values,
|
||||||
}: SettingsObjectFieldTypeSelectSectionProps) => {
|
}: SettingsObjectFieldTypeSelectSectionProps) => {
|
||||||
const relationFormConfig = values?.relation;
|
const relationFormConfig = values?.relation;
|
||||||
@ -116,7 +116,7 @@ export const SettingsObjectFieldTypeSelectSection = ({
|
|||||||
label:
|
label:
|
||||||
relationFormConfig.field?.label || 'Field name',
|
relationFormConfig.field?.label || 'Field name',
|
||||||
type: FieldMetadataType.Relation,
|
type: FieldMetadataType.Relation,
|
||||||
id: relationFieldMetadataId,
|
id: relationFieldMetadata?.id,
|
||||||
}}
|
}}
|
||||||
shrink
|
shrink
|
||||||
objectMetadataId={relationFormConfig.objectMetadataId}
|
objectMetadataId={relationFormConfig.objectMetadataId}
|
||||||
@ -129,7 +129,10 @@ export const SettingsObjectFieldTypeSelectSection = ({
|
|||||||
form={
|
form={
|
||||||
values.type === FieldMetadataType.Relation && (
|
values.type === FieldMetadataType.Relation && (
|
||||||
<SettingsObjectFieldRelationForm
|
<SettingsObjectFieldRelationForm
|
||||||
disableRelationEdition={!!relationFieldMetadataId}
|
disableFieldEdition={
|
||||||
|
relationFieldMetadata && !relationFieldMetadata.isCustom
|
||||||
|
}
|
||||||
|
disableRelationEdition={!!relationFieldMetadata}
|
||||||
values={relationFormConfig}
|
values={relationFormConfig}
|
||||||
onChange={(nextValues) =>
|
onChange={(nextValues) =>
|
||||||
onChange({
|
onChange({
|
||||||
|
|||||||
@ -157,7 +157,7 @@ export const SettingsObjectFieldEdit = () => {
|
|||||||
}}
|
}}
|
||||||
objectMetadataId={activeObjectMetadataItem.id}
|
objectMetadataId={activeObjectMetadataItem.id}
|
||||||
onChange={handleFormChange}
|
onChange={handleFormChange}
|
||||||
relationFieldMetadataId={relationFieldMetadataItem?.id}
|
relationFieldMetadata={relationFieldMetadataItem}
|
||||||
values={{
|
values={{
|
||||||
type: formValues.type,
|
type: formValues.type,
|
||||||
relation: formValues.relation,
|
relation: formValues.relation,
|
||||||
|
|||||||
Reference in New Issue
Block a user