Companies show page as record page (#15132)

Example showing two widgets positioned in a vertical list:


https://github.com/user-attachments/assets/cf3e9793-7d80-4cab-b708-aad9f2bca7d8
This commit is contained in:
Baptiste Devessier
2025-10-16 16:45:06 +02:00
committed by GitHub
parent b2247a7a3d
commit 1b6c9e851f
14 changed files with 405 additions and 48 deletions
@@ -0,0 +1,34 @@
import { RecordFieldList } from '@/object-record/record-field-list/components/RecordFieldList';
import { useLayoutRenderingContext } from '@/ui/layout/contexts/LayoutRenderingContext';
import { useTargetRecord } from '@/ui/layout/contexts/useTargetRecord';
import { RightDrawerProvider } from '@/ui/layout/right-drawer/contexts/RightDrawerContext';
import styled from '@emotion/styled';
import { type PageLayoutWidget } from '~/generated/graphql';
const StyledContainer = styled.div`
display: flex;
flex-direction: column;
`;
type FieldsWidgetProps = {
widget: PageLayoutWidget;
};
export const FieldsWidget = ({ widget: _widget }: FieldsWidgetProps) => {
const targetRecord = useTargetRecord();
const { isInRightDrawer } = useLayoutRenderingContext();
return (
<RightDrawerProvider value={{ isInRightDrawer }}>
<StyledContainer>
<RecordFieldList
instanceId={`fields-widget-${targetRecord.id}-${isInRightDrawer ? 'right-drawer' : ''}`}
objectNameSingular={targetRecord.targetObjectNameSingular}
objectRecordId={targetRecord.id}
// TODO: pick the value from the widget configuration
showDuplicatesSection={true}
/>
</StyledContainer>
</RightDrawerProvider>
);
};