Seed core views in dev + fixes (#14071)

Seed core views in dev

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Raphaël Bosi
2025-08-26 13:05:20 +02:00
committed by GitHub
parent ab4fd6a182
commit 048455bbb6
13 changed files with 151 additions and 38 deletions
@@ -1,7 +1,11 @@
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { prefetchViewsState } from '@/prefetch/states/prefetchViewsState';
import { coreViewsState } from '@/views/states/coreViewState';
import { ViewKey } from '@/views/types/ViewKey';
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
import { extractFeatureFlagMapFromWorkspace } from '@/workspace/utils/extractFeatureFlagMapFromWorkspace';
import { selectorFamily } from 'recoil';
import { FeatureFlagKey } from '~/generated/graphql';
export const prefetchIndexViewIdFromObjectMetadataItemFamilySelector =
selectorFamily<string | undefined, { objectMetadataItemId: string }>({
@@ -9,9 +13,20 @@ export const prefetchIndexViewIdFromObjectMetadataItemFamilySelector =
get:
({ objectMetadataItemId }) =>
({ get }) => {
const prefetchedViews = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
const currentWorkspace = get(currentWorkspaceState);
const featureFlags =
extractFeatureFlagMapFromWorkspace(currentWorkspace);
const isCoreViewEnabled =
featureFlags[FeatureFlagKey.IS_CORE_VIEW_ENABLED];
const views = isCoreViewEnabled
? coreViews.map(convertCoreViewToView)
: prefetchedViews;
return views?.find(
(view) =>
view.objectMetadataId === objectMetadataItemId &&
@@ -1,7 +1,11 @@
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { prefetchViewsState } from '@/prefetch/states/prefetchViewsState';
import { coreViewsState } from '@/views/states/coreViewState';
import { type View } from '@/views/types/View';
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
import { extractFeatureFlagMapFromWorkspace } from '@/workspace/utils/extractFeatureFlagMapFromWorkspace';
import { selectorFamily } from 'recoil';
import { FeatureFlagKey } from '~/generated/graphql';
export const prefetchViewFromViewIdFamilySelector = selectorFamily<
View | undefined,
@@ -11,9 +15,19 @@ export const prefetchViewFromViewIdFamilySelector = selectorFamily<
get:
({ viewId }) =>
({ get }) => {
const prefetchedViews = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
const currentWorkspace = get(currentWorkspaceState);
const featureFlags = extractFeatureFlagMapFromWorkspace(currentWorkspace);
const isCoreViewEnabled =
featureFlags[FeatureFlagKey.IS_CORE_VIEW_ENABLED];
const views = isCoreViewEnabled
? coreViews.map(convertCoreViewToView)
: prefetchedViews;
return views?.find((view) => view.id === viewId);
},
});
@@ -1,6 +1,10 @@
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { prefetchViewsState } from '@/prefetch/states/prefetchViewsState';
import { coreViewsState } from '@/views/states/coreViewState';
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
import { extractFeatureFlagMapFromWorkspace } from '@/workspace/utils/extractFeatureFlagMapFromWorkspace';
import { selectorFamily } from 'recoil';
import { FeatureFlagKey } from '~/generated/graphql';
export const prefetchViewIdsFromObjectMetadataItemFamilySelector =
selectorFamily<string[], { objectMetadataItemId: string }>({
@@ -8,9 +12,20 @@ export const prefetchViewIdsFromObjectMetadataItemFamilySelector =
get:
({ objectMetadataItemId }) =>
({ get }) => {
const prefetchedViews = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
const currentWorkspace = get(currentWorkspaceState);
const featureFlags =
extractFeatureFlagMapFromWorkspace(currentWorkspace);
const isCoreViewEnabled =
featureFlags[FeatureFlagKey.IS_CORE_VIEW_ENABLED];
const views = isCoreViewEnabled
? coreViews.map(convertCoreViewToView)
: prefetchedViews;
return views
.filter((view) => view.objectMetadataId === objectMetadataItemId)
.map((view) => view.id);
@@ -1,13 +1,26 @@
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { prefetchViewsState } from '@/prefetch/states/prefetchViewsState';
import { coreViewsState } from '@/views/states/coreViewState';
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
import { extractFeatureFlagMapFromWorkspace } from '@/workspace/utils/extractFeatureFlagMapFromWorkspace';
import { selector } from 'recoil';
import { FeatureFlagKey } from '~/generated/graphql';
export const prefetchViewLengthSelector = selector<number>({
key: 'prefetchViewLengthSelector',
get: ({ get }) => {
const prefetchedViews = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
const currentWorkspace = get(currentWorkspaceState);
const featureFlags = extractFeatureFlagMapFromWorkspace(currentWorkspace);
const isCoreViewEnabled = featureFlags[FeatureFlagKey.IS_CORE_VIEW_ENABLED];
const views = isCoreViewEnabled
? coreViews.map(convertCoreViewToView)
: prefetchedViews;
return views?.length ?? 0;
},
});
@@ -1,7 +1,11 @@
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { prefetchViewsState } from '@/prefetch/states/prefetchViewsState';
import { coreViewsState } from '@/views/states/coreViewState';
import { type View } from '@/views/types/View';
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
import { extractFeatureFlagMapFromWorkspace } from '@/workspace/utils/extractFeatureFlagMapFromWorkspace';
import { selectorFamily } from 'recoil';
import { FeatureFlagKey } from '~/generated/graphql';
export const prefetchViewsFromObjectMetadataItemFamilySelector = selectorFamily<
View[],
@@ -11,9 +15,18 @@ export const prefetchViewsFromObjectMetadataItemFamilySelector = selectorFamily<
get:
({ objectMetadataItemId }) =>
({ get }) => {
const prefetchedViews = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
const currentWorkspace = get(currentWorkspaceState);
const featureFlags = extractFeatureFlagMapFromWorkspace(currentWorkspace);
const isCoreViewEnabled =
featureFlags[FeatureFlagKey.IS_CORE_VIEW_ENABLED];
const views = isCoreViewEnabled
? coreViews.map(convertCoreViewToView)
: prefetchedViews;
const filteredViews = views.filter(
(view) => view.objectMetadataId === objectMetadataItemId,