32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
import { useTemporaryFieldsConfiguration } from '@/page-layout/hooks/useTemporaryFieldsConfiguration';
|
|
import { buildWidgetVisibilityContext } from '@/page-layout/utils/buildWidgetVisibilityContext';
|
|
import { useFieldsWidgetFieldMetadataItems } from '@/page-layout/widgets/fields/hooks/useFieldsWidgetFieldMetadataItems';
|
|
import { filterAndOrderFieldsFromConfiguration } from '@/page-layout/widgets/fields/utils/filterAndOrderFieldsFromConfiguration';
|
|
import { useLayoutRenderingContext } from '@/ui/layout/contexts/LayoutRenderingContext';
|
|
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
|
|
|
|
export const useFieldsWidgetSectionsWithFields = (
|
|
objectNameSingular: string,
|
|
) => {
|
|
const isMobile = useIsMobile();
|
|
const { isInRightDrawer } = useLayoutRenderingContext();
|
|
const fieldMetadataItems = useFieldsWidgetFieldMetadataItems({
|
|
objectNameSingular,
|
|
});
|
|
const temporaryConfiguration =
|
|
useTemporaryFieldsConfiguration(objectNameSingular);
|
|
|
|
const context = buildWidgetVisibilityContext({ isMobile, isInRightDrawer });
|
|
|
|
const sectionsWithFields = filterAndOrderFieldsFromConfiguration({
|
|
configuration: temporaryConfiguration ?? {
|
|
__typename: 'FieldsConfiguration',
|
|
sections: [],
|
|
},
|
|
availableFieldMetadataItems: fieldMetadataItems,
|
|
context,
|
|
});
|
|
|
|
return { sectionsWithFields };
|
|
};
|