+22
-21
@@ -1,31 +1,32 @@
|
||||
import { lastVisitedObjectMetadataItemIdState } from '@/navigation/states/lastVisitedObjectMetadataItemIdState';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { useRecoilCallback } from 'recoil';
|
||||
import { jotaiStore } from '@/ui/utilities/state/jotai/jotaiStore';
|
||||
import { useCallback } from 'react';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
|
||||
export const useSetLastVisitedObjectMetadataId = () => {
|
||||
const setLastVisitedObjectMetadataId = useRecoilCallback(
|
||||
({ set, snapshot }) =>
|
||||
({ objectMetadataItemId }: { objectMetadataItemId: string }) => {
|
||||
const objectMetadataItems = snapshot
|
||||
.getLoadable(objectMetadataItemsState)
|
||||
.getValue();
|
||||
const setLastVisitedObjectMetadataId = useCallback(
|
||||
({ objectMetadataItemId }: { objectMetadataItemId: string }) => {
|
||||
const objectMetadataItems = jotaiStore.get(objectMetadataItemsState.atom);
|
||||
|
||||
const objectMetadataItem = objectMetadataItems.find(
|
||||
(item) => item.id === objectMetadataItemId,
|
||||
const objectMetadataItem = objectMetadataItems.find(
|
||||
(item) => item.id === objectMetadataItemId,
|
||||
);
|
||||
|
||||
const lastVisitedObjectMetadataItemId = jotaiStore.get(
|
||||
lastVisitedObjectMetadataItemIdState.atom,
|
||||
);
|
||||
|
||||
if (
|
||||
isDefined(objectMetadataItem) &&
|
||||
lastVisitedObjectMetadataItemId !== objectMetadataItemId
|
||||
) {
|
||||
jotaiStore.set(
|
||||
lastVisitedObjectMetadataItemIdState.atom,
|
||||
objectMetadataItemId,
|
||||
);
|
||||
|
||||
const lastVisitedObjectMetadataItemId = snapshot
|
||||
.getLoadable(lastVisitedObjectMetadataItemIdState)
|
||||
.getValue();
|
||||
|
||||
if (
|
||||
isDefined(objectMetadataItem) &&
|
||||
lastVisitedObjectMetadataItemId !== objectMetadataItemId
|
||||
) {
|
||||
set(lastVisitedObjectMetadataItemIdState, objectMetadataItemId);
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
[],
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user