RICH_TEXT_V2 upgrade command (#10094)

Adds two migration commands:
- copy note and task `body` data to `bodyV2`
- hide `body` view field and swap position with `bodyV2` view field

Related to issue https://github.com/twentyhq/twenty/issues/7613

---------

Co-authored-by: ad-elias <elias@autodiligence.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
eliasylonen
2025-02-12 12:26:29 +01:00
committed by GitHub
parent 33af71ccd3
commit 23d2e54439
12 changed files with 605 additions and 78 deletions

View File

@ -12,6 +12,8 @@ import { RecordGqlOperationFilter } from '@/object-record/graphql/types/RecordGq
import { RecordGqlOperationOrderBy } from '@/object-record/graphql/types/RecordGqlOperationOrderBy';
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState';
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import { FeatureFlagKey } from '~/generated/graphql';
import { sortByAscString } from '~/utils/array/sortByAscString';
export const useActivities = <T extends Task | Note>({
@ -27,6 +29,10 @@ export const useActivities = <T extends Task | Note>({
activitiesOrderByVariables: RecordGqlOperationOrderBy;
skip?: boolean;
}) => {
const isRichTextV2Enabled = useIsFeatureEnabled(
FeatureFlagKey.IsRichTextV2Enabled,
);
const { objectMetadataItems } = useObjectMetadataItems();
const { activityTargets, loadingActivityTargets } =
@ -64,6 +70,7 @@ export const useActivities = <T extends Task | Note>({
findActivitiesOperationSignatureFactory({
objectMetadataItems,
objectNameSingular,
isRichTextV2Enabled,
});
const { records: activities, loading: loadingActivities } =

View File

@ -13,7 +13,9 @@ import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordF
import { useUpsertFindManyRecordsQueryInCache } from '@/object-record/cache/hooks/useUpsertFindManyRecordsQueryInCache';
import { getRecordFromCache } from '@/object-record/cache/utils/getRecordFromCache';
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
import { isDefined } from 'twenty-shared';
import { FeatureFlagKey } from '~/generated-metadata/graphql';
import { sortByAscString } from '~/utils/array/sortByAscString';
export const usePrepareFindManyActivitiesQuery = ({
@ -21,6 +23,10 @@ export const usePrepareFindManyActivitiesQuery = ({
}: {
activityObjectNameSingular: CoreObjectNameSingular;
}) => {
const isRichTextV2Enabled = useIsFeatureEnabled(
FeatureFlagKey.IsRichTextV2Enabled,
);
const { objectMetadataItem: objectMetadataItemActivity } =
useObjectMetadataItem({
objectNameSingular: activityObjectNameSingular,
@ -114,6 +120,7 @@ export const usePrepareFindManyActivitiesQuery = ({
findActivitiesOperationSignatureFactory({
objectNameSingular: activityObjectNameSingular,
objectMetadataItems,
isRichTextV2Enabled,
});
upsertFindManyActivitiesInCache({