7336 create contextstore (#7374)
Closes #7336 Create 3 states: - `contextStoreCurrentObjectMetadataIdState`: is set when we change object metadata - `contextStoreCurrentViewIdState`: is set when we change view - `contextStoreTargetedRecordIdsState`: is set when we select records inside a table or a board or when a show page is opened. Is reset when we change view.
This commit is contained in:
@ -1,3 +1,4 @@
|
||||
import { contextStoreCurrentViewIdState } from '@/context-store/states/contextStoreCurrentViewIdState';
|
||||
import { useLastVisitedObjectMetadataItem } from '@/navigation/hooks/useLastVisitedObjectMetadataItem';
|
||||
import { useLastVisitedView } from '@/navigation/hooks/useLastVisitedView';
|
||||
import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems';
|
||||
@ -7,6 +8,7 @@ import { useGetCurrentView } from '@/views/hooks/useGetCurrentView';
|
||||
import { currentViewIdComponentState } from '@/views/states/currentViewIdComponentState';
|
||||
import { isUndefined } from '@sniptt/guards';
|
||||
import { useEffect } from 'react';
|
||||
import { useSetRecoilState } from 'recoil';
|
||||
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
|
||||
@ -37,6 +39,9 @@ export const QueryParamsViewIdEffect = () => {
|
||||
objectMetadataItemId?.id,
|
||||
lastVisitedObjectMetadataItemId,
|
||||
);
|
||||
const setContextStoreCurrentViewId = useSetRecoilState(
|
||||
contextStoreCurrentViewIdState,
|
||||
);
|
||||
|
||||
// // TODO: scope view bar per view id if possible
|
||||
// const { resetCurrentView } = useResetCurrentView();
|
||||
@ -59,6 +64,7 @@ export const QueryParamsViewIdEffect = () => {
|
||||
});
|
||||
}
|
||||
setCurrentViewId(lastVisitedViewId);
|
||||
setContextStoreCurrentViewId(lastVisitedViewId);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -73,6 +79,7 @@ export const QueryParamsViewIdEffect = () => {
|
||||
});
|
||||
}
|
||||
setCurrentViewId(viewIdQueryParam);
|
||||
setContextStoreCurrentViewId(viewIdQueryParam);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -87,8 +94,13 @@ export const QueryParamsViewIdEffect = () => {
|
||||
});
|
||||
}
|
||||
setCurrentViewId(indexView.id);
|
||||
setContextStoreCurrentViewId(indexView.id);
|
||||
return;
|
||||
}
|
||||
|
||||
return () => {
|
||||
setContextStoreCurrentViewId(null);
|
||||
};
|
||||
}, [
|
||||
currentViewId,
|
||||
getFiltersFromQueryParams,
|
||||
@ -96,6 +108,7 @@ export const QueryParamsViewIdEffect = () => {
|
||||
lastVisitedViewId,
|
||||
objectMetadataItemId?.id,
|
||||
objectNamePlural,
|
||||
setContextStoreCurrentViewId,
|
||||
setCurrentViewId,
|
||||
setLastVisitedObjectMetadataItem,
|
||||
setLastVisitedView,
|
||||
|
||||
Reference in New Issue
Block a user