@@ -6,15 +6,17 @@ import { useAppQueries } from 'src/core/contexts/AppQueriesProvider';
66import { ContextNotProvided } from 'src/core/contexts/context' ;
77import { delayedContext } from 'src/core/contexts/delayedContext' ;
88import { createQueryContext } from 'src/core/contexts/queryContext' ;
9+ import { useApplicationMetadata } from 'src/features/applicationMetadata/ApplicationMetadataProvider' ;
910import { useCurrentDataModelName } from 'src/features/datamodel/useBindingSchema' ;
1011import { cleanLayout } from 'src/features/form/layout/cleanLayout' ;
1112import { makeLayoutLookups } from 'src/features/form/layout/makeLayoutLookups' ;
1213import { applyLayoutQuirks } from 'src/features/form/layout/quirks' ;
1314import { useLayoutSets } from 'src/features/form/layoutSets/LayoutSetsProvider' ;
1415import { useLayoutSetIdFromUrl } from 'src/features/form/layoutSets/useCurrentLayoutSet' ;
15- import { useInstanceDataQuery } from 'src/features/instance/InstanceContext' ;
16+ import { useInstanceDataQuery , useLaxInstanceId } from 'src/features/instance/InstanceContext' ;
1617import { useProcessQuery } from 'src/features/instance/useProcessQuery' ;
1718import { makeLikertChildId } from 'src/layout/Likert/Generator/makeLikertChildId' ;
19+ import { fetchLayoutsForInstance } from 'src/queries/queries' ;
1820import type { QueryDefinition } from 'src/core/queries/usePrefetchQuery' ;
1921import type { CompExternal , ILayoutCollection , ILayouts } from 'src/layout/layout' ;
2022import type { IExpandedWidthLayouts , IHiddenLayoutsExternal } from 'src/types' ;
@@ -32,10 +34,20 @@ export function useLayoutQueryDef(
3234 layoutSetId ?: string ,
3335) : QueryDefinition < LayoutContextValue > {
3436 const { fetchLayouts } = useAppQueries ( ) ;
37+ const instanceId = useLaxInstanceId ( ) ;
38+ const features = useApplicationMetadata ( ) . features ?? { } ;
39+
3540 return {
3641 queryKey : [ 'formLayouts' , layoutSetId , enabled ] ,
3742 queryFn : layoutSetId
38- ? ( ) => fetchLayouts ( layoutSetId ) . then ( ( layouts ) => processLayouts ( layouts , layoutSetId , defaultDataModelType ) )
43+ ? async ( ) => {
44+ const shouldUseInstanceEndpoint = features . addInstanceIdentifierToLayoutRequests && instanceId ;
45+ const layouts = shouldUseInstanceEndpoint
46+ ? await fetchLayoutsForInstance ( layoutSetId , instanceId )
47+ : await fetchLayouts ( layoutSetId ) ;
48+
49+ return processLayouts ( layouts , layoutSetId , defaultDataModelType ) ;
50+ }
3951 : skipToken ,
4052 enabled : enabled && ! ! layoutSetId ,
4153 } ;
0 commit comments