Skip to content

Commit 2cb035d

Browse files
committed
consolidate data model url hooks
1 parent 0eac7b3 commit 2cb035d

File tree

3 files changed

+16
-43
lines changed

3 files changed

+16
-43
lines changed

src/features/datamodel/DataModelsProvider.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { useApplicationMetadata } from 'src/features/applicationMetadata/Applica
1414
import { getFirstDataElementId } from 'src/features/applicationMetadata/appMetadataUtils';
1515
import { useCustomValidationConfigQuery } from 'src/features/customValidation/useCustomValidationQuery';
1616
import { UpdateDataElementIdsForCypress } from 'src/features/datamodel/DataElementIdsForCypress';
17-
import { useCurrentDataModelName, useDataModelUrl } from 'src/features/datamodel/useBindingSchema';
17+
import { useCurrentDataModelName, useGetDataModelUrl } from 'src/features/datamodel/useBindingSchema';
1818
import { useDataModelSchemaQuery } from 'src/features/datamodel/useDataModelSchemaQuery';
1919
import {
2020
getAllReferencedDataTypes,
@@ -310,7 +310,7 @@ function LoadInitialData({ dataType, overrideDataElement }: LoaderProps & { over
310310
const dataElementId = overrideDataElement ?? getFirstDataElementId(dataElements, dataType);
311311
const metaData = useApplicationMetadata();
312312

313-
const url = useDataModelUrl({
313+
const url = useGetDataModelUrl()({
314314
dataType,
315315
dataElementId,
316316
includeRowIds: true,

src/features/datamodel/useBindingSchema.tsx

Lines changed: 12 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useCallback, useMemo } from 'react';
1+
import { useMemo } from 'react';
22

33
import type { JSONSchema7 } from 'json-schema';
44

@@ -102,44 +102,17 @@ export function useGetDataModelUrl() {
102102
const instanceId = useLaxInstanceId();
103103
const currentLanguage = useAsRef(useCurrentLanguage());
104104

105-
return useCallback(
106-
({ dataType, dataElementId, includeRowIds, language }: DataModelProps) =>
107-
getDataModelUrl({
108-
dataType,
109-
dataElementId,
110-
includeRowIds,
111-
language: language ?? currentLanguage.current,
112-
isAnonymous,
113-
isStateless,
114-
instanceId,
115-
}),
116-
[currentLanguage, instanceId, isAnonymous, isStateless],
117-
);
118-
}
119-
120-
// We assume that the first data element of the correct type is the one we should use, same as isDataTypeWritable
121-
export function useDataModelUrl({
122-
dataType,
123-
dataElementId,
124-
includeRowIds,
125-
language,
126-
prefillFromQueryParams,
127-
}: DataModelProps) {
128-
const isAnonymous = useAllowAnonymous();
129-
const isStateless = useApplicationMetadata().isStatelessApp;
130-
const instanceId = useLaxInstanceId();
131-
const currentLanguage = useAsRef(useCurrentLanguage());
132-
133-
return getDataModelUrl({
134-
dataType,
135-
dataElementId,
136-
includeRowIds,
137-
language: language ?? currentLanguage.current,
138-
isAnonymous,
139-
isStateless,
140-
instanceId,
141-
prefillFromQueryParams,
142-
});
105+
return ({ dataType, dataElementId, includeRowIds, language, prefillFromQueryParams }: DataModelProps) =>
106+
getDataModelUrl({
107+
dataType,
108+
dataElementId,
109+
includeRowIds,
110+
language: language ?? currentLanguage.current,
111+
isAnonymous,
112+
isStateless,
113+
instanceId,
114+
prefillFromQueryParams,
115+
});
143116
}
144117

145118
export function useCurrentDataModelName() {

src/features/formData/FormDataReaders.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import dot from 'dot-object';
66
import { ContextNotProvided, createContext } from 'src/core/contexts/context';
77
import { getFirstDataElementId } from 'src/features/applicationMetadata/appMetadataUtils';
88
import { useAvailableDataModels } from 'src/features/datamodel/useAvailableDataModels';
9-
import { useDataModelUrl } from 'src/features/datamodel/useBindingSchema';
9+
import { useGetDataModelUrl } from 'src/features/datamodel/useBindingSchema';
1010
import { useFormDataQuery } from 'src/features/formData/useFormDataQuery';
1111
import { useInstanceDataElements } from 'src/features/instance/InstanceContext';
1212
import { useCurrentLanguage } from 'src/features/language/LanguageProvider';
@@ -198,7 +198,7 @@ function SpecificDataModelFetcher({ reader, isAvailable }: { reader: DataModelRe
198198
const dataType = reader.getName();
199199
const dataElements = useInstanceDataElements(dataType);
200200
const dataElementId = getFirstDataElementId(dataElements, dataType);
201-
const url = useDataModelUrl({ includeRowIds: false, dataType, dataElementId, language: useCurrentLanguage() });
201+
const url = useGetDataModelUrl()({ includeRowIds: false, dataType, dataElementId, language: useCurrentLanguage() });
202202
const enabled = isAvailable && reader.isLoading();
203203
const { data, error } = useFormDataQuery(enabled ? url : undefined);
204204
const { updateModel } = useCtx();

0 commit comments

Comments
 (0)