Add coreView state in FE (#14034)

Co-authored-by: bosiraphael <raphael.bosi@gmail.com>
Co-authored-by: Raphaël Bosi <71827178+bosiraphael@users.noreply.github.com>
This commit is contained in:
Weiko
2025-08-25 15:49:21 +02:00
committed by GitHub
parent 293cf0be39
commit dff00e813c
21 changed files with 441 additions and 204 deletions
@@ -1,5 +1,6 @@
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 { selectorFamily } from 'recoil';
export const prefetchIndexViewIdFromObjectMetadataItemFamilySelector =
@@ -8,7 +9,9 @@ export const prefetchIndexViewIdFromObjectMetadataItemFamilySelector =
get:
({ objectMetadataItemId }) =>
({ get }) => {
const views = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
return views?.find(
(view) =>
view.objectMetadataId === objectMetadataItemId &&
@@ -1,5 +1,6 @@
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 { selectorFamily } from 'recoil';
export const prefetchViewFromViewIdFamilySelector = selectorFamily<
@@ -10,7 +11,9 @@ export const prefetchViewFromViewIdFamilySelector = selectorFamily<
get:
({ viewId }) =>
({ get }) => {
const views = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
return views?.find((view) => view.id === viewId);
},
});
@@ -1,4 +1,5 @@
import { prefetchViewsState } from '@/prefetch/states/prefetchViewsState';
import { coreViewsState } from '@/views/states/coreViewState';
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
import { selectorFamily } from 'recoil';
export const prefetchViewIdsFromObjectMetadataItemFamilySelector =
@@ -7,7 +8,9 @@ export const prefetchViewIdsFromObjectMetadataItemFamilySelector =
get:
({ objectMetadataItemId }) =>
({ get }) => {
const views = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
return views
.filter((view) => view.objectMetadataId === objectMetadataItemId)
.map((view) => view.id);
@@ -1,10 +1,13 @@
import { prefetchViewsState } from '@/prefetch/states/prefetchViewsState';
import { coreViewsState } from '@/views/states/coreViewState';
import { convertCoreViewToView } from '@/views/utils/convertCoreViewToView';
import { selector } from 'recoil';
export const prefetchViewLengthSelector = selector<number>({
key: 'prefetchViewLengthSelector',
get: ({ get }) => {
const views = get(prefetchViewsState);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
return views?.length ?? 0;
},
});
@@ -1,5 +1,6 @@
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 { selectorFamily } from 'recoil';
export const prefetchViewsFromObjectMetadataItemFamilySelector = selectorFamily<
@@ -10,9 +11,14 @@ export const prefetchViewsFromObjectMetadataItemFamilySelector = selectorFamily<
get:
({ objectMetadataItemId }) =>
({ get }) => {
const views = get(prefetchViewsState);
return views
.filter((view) => view.objectMetadataId === objectMetadataItemId)
.sort((a, b) => a.position - b.position);
const coreViews = get(coreViewsState);
const views = coreViews.map(convertCoreViewToView);
const filteredViews = views.filter(
(view) => view.objectMetadataId === objectMetadataItemId,
);
return filteredViews.sort((a, b) => a.position - b.position);
},
});