Files
twenty/packages/twenty-front/src/modules/object-metadata/components/ObjectMetadataItemsProvider.tsx
Charles Bochet 86c0f311f5 Introduce ComponentState (#4386)
* Proof of concept ComponentState

* Migrate to createState and createFamilyState

* Refactor

* Fix

* Fix tests

* Fix lint

* Fix tests

* Re-enable coverage
2024-03-09 11:31:00 +01:00

31 lines
1.1 KiB
TypeScript

import React from 'react';
import { useRecoilValue } from 'recoil';
import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState.ts';
import { ObjectMetadataItemsLoadEffect } from '@/object-metadata/components/ObjectMetadataItemsLoadEffect';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { RelationPickerScope } from '@/object-record/relation-picker/scopes/RelationPickerScope';
export const ObjectMetadataItemsProvider = ({
children,
}: React.PropsWithChildren) => {
const objectMetadataItems = useRecoilValue(objectMetadataItemsState());
const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState());
const shouldDisplayChildren = () => {
if (objectMetadataItems.length > 0) {
return true;
}
return !currentWorkspaceMember;
};
return (
<>
<ObjectMetadataItemsLoadEffect />
{shouldDisplayChildren() && (
<RelationPickerScope relationPickerScopeId="relation-picker">
{children}
</RelationPickerScope>
)}
</>
);
};