Skip to content

Commit 5ca43a3

Browse files
author
Ruben van Leeuwen
committed
1663: Renames formProvider to apiProvider
1 parent de95415 commit 5ca43a3

File tree

5 files changed

+28
-23
lines changed

5 files changed

+28
-23
lines changed

frontend/packages/pydantic-forms/src/core/PydanticFormContextProvider.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import {
2727
getFormValuesFromFieldOrLabels,
2828
} from '@/core/helper';
2929
import {
30-
usePydanticForm,
30+
useApiProvider,
3131
usePydanticFormParser,
3232
useRefParser,
3333
} from '@/core/hooks';
@@ -78,7 +78,7 @@ function PydanticFormContextProvider({
7878
const {
7979
customDataProvider,
8080
labelProvider,
81-
formProvider,
81+
apiProvider,
8282
fieldDetailProvider,
8383
onFieldChangeHandler,
8484
customDataProviderCacheKey,
@@ -93,6 +93,7 @@ function PydanticFormContextProvider({
9393
cancelButton,
9494
} = config;
9595

96+
// TODO: Fix this again
9697
// option to enable the debug mode on the fly in the browser
9798
// by setting localStorage.setItem("pydanticFormsDebugMode", "true")
9899
// reload is required
@@ -111,18 +112,23 @@ function PydanticFormContextProvider({
111112
const { data: formLabels, isLoading: isLoadingFormLabels } =
112113
useLabelProvider(labelProvider, formKey, formIdKey);
113114

114-
const { data: customData, isLoading: isCustomDataLoading } =
115+
const { data: customData, isLoading: isLoadingCustomData } =
115116
useCustomDataProvider(
116117
customDataProviderCacheKey ?? 100,
117118
customDataProvider,
118119
);
119120

120121
// fetch the form definition using SWR hook
122+
// 1. Called and returns with 510 code and form schema in payload
123+
// 2. Called with form payload
124+
// - form_validation errors => 400
125+
// - success => 200
126+
// - second step? 510 with form definition
121127
const {
122128
data: apiResponse,
123129
isLoading: isLoadingSchema,
124130
error,
125-
} = usePydanticForm(formKey, formInputData, formProvider, metaData);
131+
} = useApiProvider(formKey, formInputData, apiProvider, metaData);
126132

127133
// we cache the form scheme so when there is an error, we still have the form
128134
// the form is not in the error response
@@ -355,7 +361,7 @@ function PydanticFormContextProvider({
355361
isLoadingFormLabels ||
356362
isLoadingSchema ||
357363
isLoadingSchema ||
358-
(customDataProvider ? isCustomDataLoading : false);
364+
(customDataProvider ? isLoadingCustomData : false);
359365

360366
const PydanticFormContextState = {
361367
// to prevent an issue where the sending state hangs

frontend/packages/pydantic-forms/src/core/helper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { ControllerRenderProps, FieldValues, useForm } from 'react-hook-form';
77

88
import fieldsConfig from '@/components/config';
99
import {
10-
PydanticFormApiErrorResponse,
10+
PydanticFormApiResponse,
1111
PydanticFormApiResponsePropertyResolved,
1212
PydanticFormData,
1313
PydanticFormField,
@@ -27,7 +27,7 @@ import { insertItemAtIndex } from '@/utils';
2727
* @returns A object better usable for displaying errors
2828
*/
2929
export const getErrorDetailsFromResponse = function (
30-
apiErrorResp: PydanticFormApiErrorResponse,
30+
apiErrorResp: PydanticFormApiResponse,
3131
) {
3232
return {
3333
detail: apiErrorResp.detail ?? '',
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
export * from './usePydanticForm';
1+
export * from './useApiProvider';
22
export * from './useRefParser';
33
export * from './usePydanticFormParser';

frontend/packages/pydantic-forms/src/core/hooks/usePydanticForm.tsx renamed to frontend/packages/pydantic-forms/src/core/hooks/useApiProvider.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
import useSWR, { SWRConfiguration } from 'swr';
1818

1919
import type {
20-
PydanticFormApiErrorResponse,
20+
PydanticFormApiProvider,
21+
PydanticFormApiResponse,
2122
PydanticFormMetaData,
22-
PydanticFormProvider,
2323
} from '@/types';
2424

2525
const ignoreApiErrors = async (
@@ -35,15 +35,15 @@ const ignoreApiErrors = async (
3535
}
3636
};
3737

38-
export function usePydanticForm(
38+
export function useApiProvider(
3939
formKey: string,
4040
formInputData: PydanticFormMetaData, // TODO: This doesn't seem right
41-
formProvider: PydanticFormProvider,
41+
apiProvider: PydanticFormApiProvider,
4242
metaData?: PydanticFormMetaData,
4343
cacheKey?: number,
4444
swrConfig?: SWRConfiguration,
4545
) {
46-
return useSWR<PydanticFormApiErrorResponse>(
46+
return useSWR<PydanticFormApiResponse>(
4747
// cache key
4848
[formKey, formInputData, metaData, swrConfig, cacheKey],
4949

@@ -52,12 +52,12 @@ export function usePydanticForm(
5252
// TODO: Readd sending metadata along with request
5353
const requestBody = formInputData;
5454

55-
const formProviderRequest = formProvider({
55+
const apiProviderRequest = apiProvider({
5656
formKey,
5757
requestBody,
5858
});
5959
const req = (await ignoreApiErrors(
60-
formProviderRequest,
60+
apiProviderRequest,
6161
// eslint-disable-next-line @typescript-eslint/no-explicit-any
6262
)) as any;
6363

frontend/packages/pydantic-forms/src/types.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ export interface PydanticFormsContextConfig {
298298
formStructureMutator?: PydanticFormStructureMutator;
299299

300300
// use a custom method for providing the form definition
301-
formProvider: PydanticFormProvider;
301+
apiProvider: PydanticFormApiProvider;
302302

303303
// Extend field definitions
304304
fieldDetailProvider?: PydanticFormFieldDetailProvider;
@@ -348,7 +348,7 @@ export type PydanticFormStructureMutator = (
348348
formData: PydanticFormData | false,
349349
) => PydanticFormData | false;
350350

351-
export type PydanticFormProvider = ({
351+
export type PydanticFormApiProvider = ({
352352
formKey,
353353
requestBody,
354354
}: {
@@ -378,20 +378,20 @@ export type PydanticFormCustomValidationRuleFn = (
378378
rhf?: ReturnType<typeof useForm>,
379379
) => Zod.ZodTypeAny | undefined;
380380

381-
export interface PydanticFormApiErrorResponse {
381+
export interface PydanticFormApiResponse {
382382
detail?: string;
383383
status: number;
384-
form: PydanticFormApiResponse;
384+
form: PydanticFormSchema;
385385
success?: boolean;
386386
validation_errors: PydanticFormApiValidationError[];
387387
}
388388

389-
export interface PydanticFormApiResponse extends PydanticFormApiResponseBase {
389+
export interface PydanticFormSchema extends PydanticFormSchemaBase {
390390
properties: {
391391
[propId: string]: PydanticFormApiResponseProperty;
392392
};
393393
}
394-
export interface PydanticFormApiResponseBase {
394+
export interface PydanticFormSchemaBase {
395395
title: string;
396396
description: string;
397397
additionalProperties: boolean;
@@ -422,8 +422,7 @@ export interface JsonSchemaRef {
422422
$ref: string;
423423
}
424424

425-
export interface PydanticFormApiRefResolved
426-
extends PydanticFormApiResponseBase {
425+
export interface PydanticFormApiRefResolved extends PydanticFormSchemaBase {
427426
properties: {
428427
[propId: string]: PydanticFormApiResponsePropertyResolved;
429428
};

0 commit comments

Comments
 (0)