twenty/packages/twenty-front/src/modules/object-metadata/components/ObjectMetadataItemsLoadEffect.tsx

36 lines
1.2 KiB
TypeScript
Raw Normal View History

import { useEffect } from 'react';
import { useRecoilValue } from 'recoil';
2024-03-26 13:19:40 +00:00
import { currentUserState } from '@/auth/states/currentUserState';
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
import { useLoadMockedObjectMetadataItems } from '@/object-metadata/hooks/useLoadMockedObjectMetadataItems';
import { useRefreshObjectMetadataItems } from '@/object-metadata/hooks/useRefreshObjectMetadataItem';
import { isWorkspaceActiveOrSuspended } from 'twenty-shared';
2024-03-26 13:19:40 +00:00
import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';
export const ObjectMetadataItemsLoadEffect = () => {
2024-03-26 13:19:40 +00:00
const currentUser = useRecoilValue(currentUserState);
const currentWorkspace = useRecoilValue(currentWorkspaceState);
const { refreshObjectMetadataItems } = useRefreshObjectMetadataItems();
const { loadMockedObjectMetadataItems } = useLoadMockedObjectMetadataItems();
useEffect(() => {
if (
isUndefinedOrNull(currentUser) ||
!isWorkspaceActiveOrSuspended(currentWorkspace)
) {
loadMockedObjectMetadataItems();
} else {
refreshObjectMetadataItems();
}
}, [
currentUser,
currentWorkspace,
loadMockedObjectMetadataItems,
refreshObjectMetadataItems,
]);
return <></>;
};