* POC new recoil injected scoped states * Finished useViewScopedState refactor * Finished refactor * Renamed mappers * Fixed update view fields bug * Post merge * Complete refactor * Fix tests --------- Co-authored-by: Charles Bochet <charles@twenty.com>
107 lines
3.5 KiB
TypeScript
107 lines
3.5 KiB
TypeScript
import { Snapshot } from 'recoil';
|
|
|
|
import { getScopedState } from '@/ui/utilities/recoil-scope/utils/getScopedState';
|
|
import { getSnapshotValue } from '@/ui/utilities/recoil-scope/utils/getSnapshotValue';
|
|
|
|
import { UNDEFINED_FAMILY_ITEM_ID } from '../constants';
|
|
import { currentViewIdScopedState } from '../states/currentViewIdScopedState';
|
|
|
|
import { getViewScopedStates } from './internal/getViewScopedStates';
|
|
|
|
export const getViewScopedStateValuesFromSnapshot = ({
|
|
snapshot,
|
|
viewScopeId,
|
|
viewId,
|
|
}: {
|
|
snapshot: Snapshot;
|
|
viewScopeId: string;
|
|
viewId?: string;
|
|
}) => {
|
|
const currentViewId = getSnapshotValue(
|
|
snapshot,
|
|
getScopedState(currentViewIdScopedState, viewScopeId),
|
|
);
|
|
|
|
const familyItemId = viewId ?? currentViewId ?? UNDEFINED_FAMILY_ITEM_ID;
|
|
|
|
const {
|
|
availableFieldDefinitionsState,
|
|
availableFilterDefinitionsState,
|
|
availableSortDefinitionsState,
|
|
canPersistFiltersSelector,
|
|
canPersistSortsSelector,
|
|
currentViewFieldsState,
|
|
currentViewFiltersState,
|
|
currentViewIdState,
|
|
currentViewSelector,
|
|
currentViewSortsState,
|
|
entityCountInCurrentViewState,
|
|
isViewBarExpandedState,
|
|
onViewFieldsChangeState,
|
|
onViewFiltersChangeState,
|
|
onViewSortsChangeState,
|
|
savedViewFieldsByKeySelector,
|
|
savedViewFieldsState,
|
|
savedViewFiltersByKeySelector,
|
|
savedViewFiltersState,
|
|
savedViewSortsByKeySelector,
|
|
savedViewSortsState,
|
|
viewEditModeState,
|
|
viewObjectIdState,
|
|
viewTypeState,
|
|
viewsState,
|
|
} = getViewScopedStates({
|
|
viewScopeId,
|
|
viewId: familyItemId,
|
|
});
|
|
|
|
return {
|
|
availableFieldDefinitions: getSnapshotValue(
|
|
snapshot,
|
|
availableFieldDefinitionsState,
|
|
),
|
|
availableFilterDefinitions: getSnapshotValue(
|
|
snapshot,
|
|
availableFilterDefinitionsState,
|
|
),
|
|
availableSortDefinitions: getSnapshotValue(
|
|
snapshot,
|
|
availableSortDefinitionsState,
|
|
),
|
|
canPersistFilters: getSnapshotValue(snapshot, canPersistFiltersSelector),
|
|
canPersistSorts: getSnapshotValue(snapshot, canPersistSortsSelector),
|
|
currentViewFields: getSnapshotValue(snapshot, currentViewFieldsState),
|
|
currentViewFilters: getSnapshotValue(snapshot, currentViewFiltersState),
|
|
currentViewId: getSnapshotValue(snapshot, currentViewIdState),
|
|
currentView: getSnapshotValue(snapshot, currentViewSelector),
|
|
currentViewSorts: getSnapshotValue(snapshot, currentViewSortsState),
|
|
entityCountInCurrentView: getSnapshotValue(
|
|
snapshot,
|
|
entityCountInCurrentViewState,
|
|
),
|
|
isViewBarExpanded: getSnapshotValue(snapshot, isViewBarExpandedState),
|
|
onViewFieldsChange: getSnapshotValue(snapshot, onViewFieldsChangeState),
|
|
onViewFiltersChange: getSnapshotValue(snapshot, onViewFiltersChangeState),
|
|
onViewSortsChange: getSnapshotValue(snapshot, onViewSortsChangeState),
|
|
savedViewFieldsByKey: getSnapshotValue(
|
|
snapshot,
|
|
savedViewFieldsByKeySelector,
|
|
),
|
|
savedViewFields: getSnapshotValue(snapshot, savedViewFieldsState),
|
|
savedViewFiltersByKey: getSnapshotValue(
|
|
snapshot,
|
|
savedViewFiltersByKeySelector,
|
|
),
|
|
savedViewFilters: getSnapshotValue(snapshot, savedViewFiltersState),
|
|
savedViewSortsByKey: getSnapshotValue(
|
|
snapshot,
|
|
savedViewSortsByKeySelector,
|
|
),
|
|
savedViewSorts: getSnapshotValue(snapshot, savedViewSortsState),
|
|
viewEditMode: getSnapshotValue(snapshot, viewEditModeState),
|
|
viewObjectId: getSnapshotValue(snapshot, viewObjectIdState),
|
|
viewType: getSnapshotValue(snapshot, viewTypeState),
|
|
views: getSnapshotValue(snapshot, viewsState),
|
|
};
|
|
};
|