Morph-front-settings (#13872)

# Implement Morph Frontend Settings

Possiblity to create a morh relation from the Settings !

## Overview
Morph object system with new frontend settings UI for configuring morph
relations.

## What Changed
- **New Components**: `SettingsDataModelFieldMorphRelationForm`,
`SettingsMorphRelationMultiSelect`
- **Form System**: React Hook Form + Zod validation for morph relation
configuration
- **Preview System**: Live preview of field configurations with
validation
- **State Management**: Enhanced component state handling for complex
form interactions

## Technical Details
- **Architecture**: Restructured field input/display components for
better maintainability
- **Types**: Added comprehensive TypeScript types for morph relations
(`isFieldMorphRelation`, etc.)
- **Validation**: Dynamic validation rules based on field types and
relation patterns
- **Performance**: Optimized rendering with proper state management

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Guillim
2025-08-19 16:37:26 +02:00
committed by GitHub
parent 9eaede6e1e
commit 90c237a185
31 changed files with 1209 additions and 83 deletions
@@ -6,7 +6,7 @@ import {
type FieldMorphRelationMetadata,
} from '../FieldMetadata';
export const isFieldMorphRelationManyToOneObject = (
export const isFieldMorphRelationManyToOne = (
field: Pick<FieldDefinition<FieldMetadata>, 'type' | 'metadata'>,
): field is FieldDefinition<FieldMorphRelationMetadata> =>
isFieldMorphRelation(field) &&
@@ -6,8 +6,8 @@ import {
type FieldMorphRelationMetadata,
} from '../FieldMetadata';
export const isFieldMorphRelationOneToManyObjects = (
export const isFieldMorphRelationOneToMany = (
field: Pick<FieldDefinition<FieldMetadata>, 'type' | 'metadata'>,
): field is FieldDefinition<FieldMorphRelationMetadata> =>
isFieldMorphRelation(field) &&
field.metadata.morphRelations?.[0].type === RelationType.ONE_TO_MANY;
field.metadata.relationType === RelationType.ONE_TO_MANY;