Extract DashboardCard from ShowPageSubContainer (#15073)
This PR determines the minimal setup required to render dashboards without errors while extracting them from the record show page. The ultimate goal is to create a `PageLayoutRenderer` component that takes any page layout configuration and correctly renders dashboards or record pages. Currently, the `DashboardCard` component renders itself the `PageLayoutRenderer` component. The next step is to reverse the flow of control and make `PageLayoutRenderer` take a configuration and decide whether it should render a dashboard or something else. This PR takes into consideration two comments left by Charles on [the first PR scaffolding the refactor](https://github.com/twentyhq/twenty/pull/15021): renaming `targetRecord` to `targetRecordIdentifier` and adding tests to `evaluateTabVisibility()`. ## Demo to assert this PR doesn't break everything https://github.com/user-attachments/assets/b5b99cf3-08fa-43d3-8da1-79018bc63641
This commit is contained in:
committed by
GitHub
parent
7d747c9876
commit
23de047787
+7
-11
@@ -6,8 +6,7 @@ import { CommandMenuPageComponentInstanceContext } from '@/command-menu/states/c
|
||||
import { ContextStoreComponentInstanceContext } from '@/context-store/states/contexts/ContextStoreComponentInstanceContext';
|
||||
import { INFORMATION_BANNER_HEIGHT } from '@/information-banner/constants/InformationBannerHeight';
|
||||
import { RecordComponentInstanceContextsWrapper } from '@/object-record/components/RecordComponentInstanceContextsWrapper';
|
||||
import { RecordShowContainer } from '@/object-record/record-show/components/RecordShowContainer';
|
||||
import { RecordShowEffect } from '@/object-record/record-show/components/RecordShowEffect';
|
||||
import { PageLayoutDispatcher } from '@/object-record/record-show/components/PageLayoutDispatcher';
|
||||
import { useRecordShowPage } from '@/object-record/record-show/hooks/useRecordShowPage';
|
||||
import { recordStoreFamilySelector } from '@/object-record/record-store/states/selectors/recordStoreFamilySelector';
|
||||
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
|
||||
@@ -89,15 +88,12 @@ export const CommandMenuRecordPage = () => {
|
||||
recordId: objectRecordId,
|
||||
}}
|
||||
>
|
||||
<RecordShowEffect
|
||||
objectNameSingular={objectNameSingular}
|
||||
recordId={objectRecordId}
|
||||
/>
|
||||
<RecordShowContainer
|
||||
objectNameSingular={objectNameSingular}
|
||||
objectRecordId={objectRecordId}
|
||||
loading={false}
|
||||
isInRightDrawer={true}
|
||||
<PageLayoutDispatcher
|
||||
targetRecordIdentifier={{
|
||||
id: objectRecordId,
|
||||
targetObjectNameSingular: objectNameSingular,
|
||||
}}
|
||||
isInRightDrawer
|
||||
/>
|
||||
</TimelineActivityContext.Provider>
|
||||
</StyledRightDrawerRecord>
|
||||
|
||||
Reference in New Issue
Block a user