create SetMainContextStoreComponentInstanceIdEffect

This commit is contained in:
bosiraphael
2024-10-22 12:21:01 +02:00
parent 1d5af9a5f1
commit ffebafd3fb
4 changed files with 30 additions and 9 deletions

View File

@@ -0,0 +1,22 @@
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
import { mainContextStoreComponentInstanceIdState } from '@/context-store/states/mainContextStoreComponentInstanceId';
import { useContext, useEffect } from 'react';
import { useSetRecoilState } from 'recoil';
export const SetMainContextStoreComponentInstanceIdEffect = () => {
const setMainContextStoreComponentInstanceId = useSetRecoilState(
mainContextStoreComponentInstanceIdState,
);
const context = useContext(ContextStoreComponentInstanceContext);
useEffect(() => {
setMainContextStoreComponentInstanceId(context?.instanceId ?? null);
return () => {
setMainContextStoreComponentInstanceId(null);
};
}, [context, setMainContextStoreComponentInstanceId]);
return null;
};

View File

@@ -1,6 +1,8 @@
import { createState } from 'twenty-ui';
export const mainContextStoreComponentInstanceId = createState<string | null>({
key: 'mainContextStoreComponentInstanceId',
export const mainContextStoreComponentInstanceIdState = createState<
string | null
>({
key: 'mainContextStoreComponentInstanceIdState',
defaultValue: null,
});

View File

@@ -1,7 +1,7 @@
import { InformationBannerDeletedRecord } from '@/information-banner/components/deleted-record/InformationBannerDeletedRecord';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { ShowPageContainer } from '@/ui/layout/page/components/ShowPageContainer';
import { SetMainContextStoreComponentInstanceIdEffect } from '@/context-store/components/SetMainContextStoreComponentInstanceIdEffect';
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
import { RecordShowContainerContextStoreEffect } from '@/object-record/record-show/components/RecordShowContainerContextStoreEffect';
import { useRecordShowContainerData } from '@/object-record/record-show/hooks/useRecordShowContainerData';
@@ -49,12 +49,7 @@ export const RecordShowContainer = ({
recordId={objectRecordId}
objectNameSingular={objectNameSingular}
/>
{recordFromStore && recordFromStore.deletedAt && (
<InformationBannerDeletedRecord
recordId={objectRecordId}
objectNameSingular={objectNameSingular}
/>
)}
{!isInRightDrawer && <SetMainContextStoreComponentInstanceIdEffect />}
<ShowPageContainer>
<ShowPageSubContainer
tabs={tabs}

View File

@@ -1,6 +1,7 @@
import styled from '@emotion/styled';
import { useParams } from 'react-router-dom';
import { SetMainContextStoreComponentInstanceIdEffect } from '@/context-store/components/SetMainContextStoreComponentInstanceIdEffect';
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
import { useObjectNameSingularFromPlural } from '@/object-metadata/hooks/useObjectNameSingularFromPlural';
@@ -81,6 +82,7 @@ export const RecordIndexPage = () => {
>
<RecordIndexContainerContextStoreObjectMetadataEffect />
<RecordIndexContainerContextStoreNumberOfSelectedRecordsEffect />
<SetMainContextStoreComponentInstanceIdEffect />
<RecordIndexContainer />
</ContextStoreComponentInstanceContext.Provider>
</StyledIndexContainer>