Only store current object metadata id in state (#10856)
Fix group by refresh when adding a select field
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
import { MAIN_CONTEXT_STORE_INSTANCE_ID } from '@/context-store/constants/MainContextStoreInstanceId';
|
||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
||||
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||
import { contextStoreCurrentViewIdComponentState } from '@/context-store/states/contextStoreCurrentViewIdComponentState';
|
||||
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
|
||||
import { ContextStoreViewType } from '@/context-store/types/ContextStoreViewType';
|
||||
@ -40,10 +40,10 @@ export const MainContextStoreProviderEffect = ({
|
||||
);
|
||||
|
||||
const [
|
||||
contextStoreCurrentObjectMetadataItem,
|
||||
setContextStoreCurrentObjectMetadataItem,
|
||||
contextStoreCurrentObjectMetadataItemId,
|
||||
setContextStoreCurrentObjectMetadataItemId,
|
||||
] = useRecoilComponentStateV2(
|
||||
contextStoreCurrentObjectMetadataItemComponentState,
|
||||
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||
MAIN_CONTEXT_STORE_INSTANCE_ID,
|
||||
);
|
||||
|
||||
@ -54,8 +54,8 @@ export const MainContextStoreProviderEffect = ({
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (contextStoreCurrentObjectMetadataItem?.id !== objectMetadataItem.id) {
|
||||
setContextStoreCurrentObjectMetadataItem(objectMetadataItem);
|
||||
if (contextStoreCurrentObjectMetadataItemId !== objectMetadataItem.id) {
|
||||
setContextStoreCurrentObjectMetadataItemId(objectMetadataItem.id);
|
||||
}
|
||||
|
||||
setLastVisitedViewForObjectMetadataNamePlural({
|
||||
@ -71,11 +71,11 @@ export const MainContextStoreProviderEffect = ({
|
||||
setContextStoreCurrentViewId(viewId);
|
||||
}
|
||||
}, [
|
||||
contextStoreCurrentObjectMetadataItem,
|
||||
contextStoreCurrentObjectMetadataItemId,
|
||||
contextStoreCurrentViewId,
|
||||
objectMetadataItem,
|
||||
objectMetadataItem.namePlural,
|
||||
setContextStoreCurrentObjectMetadataItem,
|
||||
setContextStoreCurrentObjectMetadataItemId,
|
||||
setContextStoreCurrentViewId,
|
||||
setLastVisitedObjectMetadataId,
|
||||
setLastVisitedViewForObjectMetadataNamePlural,
|
||||
|
||||
@ -1,14 +1,19 @@
|
||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
||||
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||
import { useObjectMetadataItemById } from '@/object-metadata/hooks/useObjectMetadataItemById';
|
||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||
|
||||
export const useContextStoreObjectMetadataItemOrThrow = (
|
||||
contextStoreInstanceId?: string,
|
||||
) => {
|
||||
const objectMetadataItem = useRecoilComponentValueV2(
|
||||
contextStoreCurrentObjectMetadataItemComponentState,
|
||||
const objectMetadataItemId = useRecoilComponentValueV2(
|
||||
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||
contextStoreInstanceId,
|
||||
);
|
||||
|
||||
const { objectMetadataItem } = useObjectMetadataItemById({
|
||||
objectId: objectMetadataItemId ?? '',
|
||||
});
|
||||
|
||||
if (!objectMetadataItem) {
|
||||
throw new Error('Object metadata item is not set in context store');
|
||||
}
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
import { contextStoreCurrentObjectMetadataItemComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemComponentState';
|
||||
import { contextStoreCurrentObjectMetadataItemIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataItemIdComponentState';
|
||||
import { contextStoreFiltersComponentState } from '@/context-store/states/contextStoreFiltersComponentState';
|
||||
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
||||
import { computeContextStoreFilters } from '@/context-store/utils/computeContextStoreFilters';
|
||||
import { useObjectMetadataItemById } from '@/object-metadata/hooks/useObjectMetadataItemById';
|
||||
import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords';
|
||||
import { useFilterValueDependencies } from '@/object-record/record-filter/hooks/useFilterValueDependencies';
|
||||
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
|
||||
@ -13,11 +14,15 @@ export const useFindManyRecordsSelectedInContextStore = ({
|
||||
instanceId?: string;
|
||||
limit?: number;
|
||||
}) => {
|
||||
const objectMetadataItem = useRecoilComponentValueV2(
|
||||
contextStoreCurrentObjectMetadataItemComponentState,
|
||||
const contextStoreCurrentObjectMetadataItemId = useRecoilComponentValueV2(
|
||||
contextStoreCurrentObjectMetadataItemIdComponentState,
|
||||
instanceId,
|
||||
);
|
||||
|
||||
const { objectMetadataItem } = useObjectMetadataItemById({
|
||||
objectId: contextStoreCurrentObjectMetadataItemId ?? '',
|
||||
});
|
||||
|
||||
const contextStoreTargetedRecordsRule = useRecoilComponentValueV2(
|
||||
contextStoreTargetedRecordsRuleComponentState,
|
||||
instanceId,
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
||||
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
||||
import { createComponentStateV2 } from '@/ui/utilities/state/component-state/utils/createComponentStateV2';
|
||||
|
||||
export const contextStoreCurrentObjectMetadataItemComponentState =
|
||||
createComponentStateV2<ObjectMetadataItem | undefined>({
|
||||
key: 'contextStoreCurrentObjectMetadataItemComponentState',
|
||||
export const contextStoreCurrentObjectMetadataItemIdComponentState =
|
||||
createComponentStateV2<string | undefined>({
|
||||
key: 'contextStoreCurrentObjectMetadataItemIdComponentState',
|
||||
defaultValue: undefined,
|
||||
componentInstanceContext: ContextStoreComponentInstanceContext,
|
||||
});
|
||||
Reference in New Issue
Block a user