Core views frontend (#13932)
Parallel code path to read and write core views when IS_CORE_VIEW_ENABLED. Migrated view key to an enum. --------- Co-authored-by: Charles Bochet <charles@twenty.com> Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
+19
-11
@@ -14,6 +14,8 @@ import { SettingsPath } from '@/types/SettingsPath';
|
||||
import { TableCell } from '@/ui/layout/table/components/TableCell';
|
||||
import { TableRow } from '@/ui/layout/table/components/TableRow';
|
||||
import { navigationMemorizedUrlState } from '@/ui/navigation/states/navigationMemorizedUrlState';
|
||||
import { type View } from '@/views/types/View';
|
||||
import { useFeatureFlagsMap } from '@/workspace/hooks/useFeatureFlagsMap';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { useMemo } from 'react';
|
||||
@@ -25,7 +27,7 @@ import {
|
||||
import { IconMinus, IconPlus, useIcons } from 'twenty-ui/display';
|
||||
import { LightIconButton } from 'twenty-ui/input';
|
||||
import { UndecoratedLink } from 'twenty-ui/navigation';
|
||||
import { RelationType } from '~/generated-metadata/graphql';
|
||||
import { FeatureFlagKey, RelationType } from '~/generated-metadata/graphql';
|
||||
import { useNavigateSettings } from '~/hooks/useNavigateSettings';
|
||||
import { type SettingsObjectDetailTableItem } from '~/pages/settings/data-model/types/SettingsObjectDetailTableItem';
|
||||
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
||||
@@ -122,6 +124,9 @@ export const SettingsObjectFieldItemTableRow = ({
|
||||
objectNameSingular: CoreObjectNameSingular.View,
|
||||
});
|
||||
|
||||
const featureFlagMap = useFeatureFlagsMap();
|
||||
const isCoreViewEnabled = featureFlagMap[FeatureFlagKey.IS_CORE_VIEW_ENABLED];
|
||||
|
||||
const handleDisableField = async (
|
||||
activeFieldMetadatItem: FieldMetadataItem,
|
||||
) => {
|
||||
@@ -130,17 +135,20 @@ export const SettingsObjectFieldItemTableRow = ({
|
||||
objectMetadataItem.id,
|
||||
);
|
||||
|
||||
const deletedViewIds = prefetchViews
|
||||
.map((view) => {
|
||||
// TODO: replace with viewGroups.fieldMetadataId
|
||||
if (view.kanbanFieldMetadataId === activeFieldMetadatItem.id) {
|
||||
deleteViewFromCache(view);
|
||||
return view.id;
|
||||
}
|
||||
// TODO: Add optimistic rendering for core views
|
||||
const deletedViewIds = isCoreViewEnabled
|
||||
? []
|
||||
: (prefetchViews as View[])
|
||||
.map((view) => {
|
||||
// TODO: replace with viewGroups.fieldMetadataId
|
||||
if (view.kanbanFieldMetadataId === activeFieldMetadatItem.id) {
|
||||
deleteViewFromCache(view);
|
||||
return view.id;
|
||||
}
|
||||
|
||||
return null;
|
||||
})
|
||||
.filter(isDefined);
|
||||
return null;
|
||||
})
|
||||
.filter(isDefined);
|
||||
|
||||
const [baseUrl, queryParams] = navigationMemorizedUrl.includes('?')
|
||||
? navigationMemorizedUrl.split('?')
|
||||
|
||||
Reference in New Issue
Block a user