feat: rename RICH_TEXT_V2 → RICH_TEXT in codebase (keep DB value) (#18628)

## Summary

- Renames the `FieldMetadataType` enum key from `RICH_TEXT_V2` to
`RICH_TEXT` across the entire codebase, while keeping the underlying
string value as `'RICH_TEXT_V2'` to maintain PostgreSQL database
compatibility
- Renames all related types, guards, hooks, components, and files from
`*RichTextV2*` / `*rich-text-v2*` to `*RichText*` / `*rich-text*` (e.g.
`FormRichTextV2FieldInput` → `FormRichTextFieldInput`,
`isFieldRichTextV2` → `isFieldRichText`)
- Updates generated files (GraphQL schema, SDK types) to use the new key
while preserving the `RICH_TEXT_V2` string value for DB/API layer
- Updates i18n locale files, test snapshots, and integration tests to
reflect the rename

## Context

The legacy `RICH_TEXT` (V1) field type was deprecated and migrated to
`TEXT` in a previous PR (#18623). With V1 gone, the `RICH_TEXT_V2`
naming is no longer necessary — `RICH_TEXT` is now the canonical name.
The DB enum value stays `'RICH_TEXT_V2'` to avoid confusion with the
just-deprecated V1 type and to prevent a database migration.

## Test plan

- [x] `twenty-server` typecheck passes
- [x] `twenty-front` typecheck passes (only pre-existing Apollo client
errors remain)
- [x] `twenty-server` lint passes
- [x] `twenty-front` lint passes
- [x] `twenty-shared` build passes
- [ ] CI passes


Made with [Cursor](https://cursor.com)
This commit is contained in:
Charles Bochet
2026-03-13 19:07:55 +01:00
committed by GitHub
parent 3054679411
commit d9eb317bb5
129 changed files with 452 additions and 401 deletions
@@ -374,7 +374,7 @@ enum FieldMetadataType {
RATING
RAW_JSON
RELATION
RICH_TEXT_V2
RICH_TEXT
SELECT
TEXT
TS_VECTOR
@@ -873,7 +873,7 @@ type RatioAggregateConfig {
optionValue: String!
}
type RichTextV2Body {
type RichTextBody {
blocknote: String
markdown: String
}
@@ -990,7 +990,7 @@ enum WidgetConfigurationType {
type StandaloneRichTextConfiguration {
configurationType: WidgetConfigurationType!
body: RichTextV2Body!
body: RichTextBody!
}
type PieChartConfiguration {
@@ -1606,6 +1606,7 @@ enum FeatureFlagKey {
IS_DATE_TIME_WHOLE_DAY_FILTER_ENABLED
IS_NAVIGATION_MENU_ITEM_EDITING_ENABLED
IS_DRAFT_EMAIL_ENABLED
IS_RICH_TEXT_V1_MIGRATED
}
type SSOIdentityProvider {
@@ -309,7 +309,7 @@ export interface Field {
/** Type of the field */
export type FieldMetadataType = 'ACTOR' | 'ADDRESS' | 'ARRAY' | 'BOOLEAN' | 'CURRENCY' | 'DATE' | 'DATE_TIME' | 'EMAILS' | 'FILES' | 'FULL_NAME' | 'LINKS' | 'MORPH_RELATION' | 'MULTI_SELECT' | 'NUMBER' | 'NUMERIC' | 'PHONES' | 'POSITION' | 'RATING' | 'RAW_JSON' | 'RELATION' | 'RICH_TEXT_V2' | 'SELECT' | 'TEXT' | 'TS_VECTOR' | 'UUID'
export type FieldMetadataType = 'ACTOR' | 'ADDRESS' | 'ARRAY' | 'BOOLEAN' | 'CURRENCY' | 'DATE' | 'DATE_TIME' | 'EMAILS' | 'FILES' | 'FULL_NAME' | 'LINKS' | 'MORPH_RELATION' | 'MULTI_SELECT' | 'NUMBER' | 'NUMERIC' | 'PHONES' | 'POSITION' | 'RATING' | 'RAW_JSON' | 'RELATION' | 'RICH_TEXT' | 'SELECT' | 'TEXT' | 'TS_VECTOR' | 'UUID'
export interface IndexField {
id: Scalars['UUID']
@@ -646,10 +646,10 @@ export interface RatioAggregateConfig {
__typename: 'RatioAggregateConfig'
}
export interface RichTextV2Body {
export interface RichTextBody {
blocknote?: Scalars['String']
markdown?: Scalars['String']
__typename: 'RichTextV2Body'
__typename: 'RichTextBody'
}
export interface GridPosition {
@@ -726,7 +726,7 @@ export type WidgetConfigurationType = 'AGGREGATE_CHART' | 'GAUGE_CHART' | 'PIE_C
export interface StandaloneRichTextConfiguration {
configurationType: WidgetConfigurationType
body: RichTextV2Body
body: RichTextBody
__typename: 'StandaloneRichTextConfiguration'
}
@@ -1310,7 +1310,7 @@ export interface FeatureFlag {
__typename: 'FeatureFlag'
}
export type FeatureFlagKey = 'IS_UNIQUE_INDEXES_ENABLED' | 'IS_JSON_FILTER_ENABLED' | 'IS_AI_ENABLED' | 'IS_APPLICATION_ENABLED' | 'IS_MARKETPLACE_ENABLED' | 'IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED' | 'IS_PUBLIC_DOMAIN_ENABLED' | 'IS_EMAILING_DOMAIN_ENABLED' | 'IS_DASHBOARD_V2_ENABLED' | 'IS_ATTACHMENT_MIGRATED' | 'IS_NOTE_TARGET_MIGRATED' | 'IS_TASK_TARGET_MIGRATED' | 'IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED' | 'IS_JUNCTION_RELATIONS_ENABLED' | 'IS_COMMAND_MENU_ITEM_ENABLED' | 'IS_NAVIGATION_MENU_ITEM_ENABLED' | 'IS_DATE_TIME_WHOLE_DAY_FILTER_ENABLED' | 'IS_NAVIGATION_MENU_ITEM_EDITING_ENABLED' | 'IS_DRAFT_EMAIL_ENABLED'
export type FeatureFlagKey = 'IS_UNIQUE_INDEXES_ENABLED' | 'IS_JSON_FILTER_ENABLED' | 'IS_AI_ENABLED' | 'IS_APPLICATION_ENABLED' | 'IS_MARKETPLACE_ENABLED' | 'IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED' | 'IS_PUBLIC_DOMAIN_ENABLED' | 'IS_EMAILING_DOMAIN_ENABLED' | 'IS_DASHBOARD_V2_ENABLED' | 'IS_ATTACHMENT_MIGRATED' | 'IS_NOTE_TARGET_MIGRATED' | 'IS_TASK_TARGET_MIGRATED' | 'IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED' | 'IS_JUNCTION_RELATIONS_ENABLED' | 'IS_COMMAND_MENU_ITEM_ENABLED' | 'IS_NAVIGATION_MENU_ITEM_ENABLED' | 'IS_DATE_TIME_WHOLE_DAY_FILTER_ENABLED' | 'IS_NAVIGATION_MENU_ITEM_EDITING_ENABLED' | 'IS_DRAFT_EMAIL_ENABLED' | 'IS_RICH_TEXT_V1_MIGRATED'
export interface SSOIdentityProvider {
id: Scalars['UUID']
@@ -3512,7 +3512,7 @@ export interface RatioAggregateConfigGenqlSelection{
__scalar?: boolean | number
}
export interface RichTextV2BodyGenqlSelection{
export interface RichTextBodyGenqlSelection{
blocknote?: boolean | number
markdown?: boolean | number
__typename?: boolean | number
@@ -3621,7 +3621,7 @@ export interface AggregateChartConfigurationGenqlSelection{
export interface StandaloneRichTextConfigurationGenqlSelection{
configurationType?: boolean | number
body?: RichTextV2BodyGenqlSelection
body?: RichTextBodyGenqlSelection
__typename?: boolean | number
__scalar?: boolean | number
}
@@ -6495,10 +6495,10 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const RichTextV2Body_possibleTypes: string[] = ['RichTextV2Body']
export const isRichTextV2Body = (obj?: { __typename?: any } | null): obj is RichTextV2Body => {
if (!obj?.__typename) throw new Error('__typename is missing in "isRichTextV2Body"')
return RichTextV2Body_possibleTypes.includes(obj.__typename)
const RichTextBody_possibleTypes: string[] = ['RichTextBody']
export const isRichTextBody = (obj?: { __typename?: any } | null): obj is RichTextBody => {
if (!obj?.__typename) throw new Error('__typename is missing in "isRichTextBody"')
return RichTextBody_possibleTypes.includes(obj.__typename)
}
@@ -8290,7 +8290,7 @@ export const enumFieldMetadataType = {
RATING: 'RATING' as const,
RAW_JSON: 'RAW_JSON' as const,
RELATION: 'RELATION' as const,
RICH_TEXT_V2: 'RICH_TEXT_V2' as const,
RICH_TEXT: 'RICH_TEXT' as const,
SELECT: 'SELECT' as const,
TEXT: 'TEXT' as const,
TS_VECTOR: 'TS_VECTOR' as const,
@@ -8570,7 +8570,8 @@ export const enumFeatureFlagKey = {
IS_NAVIGATION_MENU_ITEM_ENABLED: 'IS_NAVIGATION_MENU_ITEM_ENABLED' as const,
IS_DATE_TIME_WHOLE_DAY_FILTER_ENABLED: 'IS_DATE_TIME_WHOLE_DAY_FILTER_ENABLED' as const,
IS_NAVIGATION_MENU_ITEM_EDITING_ENABLED: 'IS_NAVIGATION_MENU_ITEM_EDITING_ENABLED' as const,
IS_DRAFT_EMAIL_ENABLED: 'IS_DRAFT_EMAIL_ENABLED' as const
IS_DRAFT_EMAIL_ENABLED: 'IS_DRAFT_EMAIL_ENABLED' as const,
IS_RICH_TEXT_V1_MIGRATED: 'IS_RICH_TEXT_V1_MIGRATED' as const
}
export const enumRelationType = {
@@ -1822,7 +1822,7 @@ export default {
1
]
},
"RichTextV2Body": {
"RichTextBody": {
"blocknote": [
1
],
@@ -6,5 +6,5 @@ export type {
FullNameMetadata as FullNameField,
LinksMetadata as LinksField,
PhonesMetadata as PhonesField,
RichTextV2Metadata as RichTextField,
RichTextMetadata as RichTextField,
} from 'twenty-shared/types';