Skip to content

Commit e97ae57

Browse files
author
Ruben van Leeuwen
committed
Fixes applying labels
1 parent fe2be14 commit e97ae57

File tree

6 files changed

+30
-30
lines changed

6 files changed

+30
-30
lines changed

frontend/packages/pydantic-forms/src/components/fields/FieldWrap.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import React from 'react';
1111
import type { ControllerFieldState } from 'react-hook-form';
1212

13-
import ResetNullableFieldTrigger from '@/components/form/ResetNullableFieldTrigger';
1413
import { usePydanticFormContext } from '@/core';
1514
import { PydanticFormField } from '@/types';
1615

@@ -36,12 +35,7 @@ export const FieldWrap = ({
3635

3736
return (
3837
<FormRow
39-
label={
40-
<>
41-
{pydanticFormField.title}
42-
<ResetNullableFieldTrigger field={pydanticFormField} />
43-
</>
44-
}
38+
title={pydanticFormField.title}
4539
description={pydanticFormField.description}
4640
required={pydanticFormField.required}
4741
isInvalid={!!isInvalid}

frontend/packages/pydantic-forms/src/components/fields/FormRow.tsx

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { HTMLAttributes, ReactElement, ReactNode } from 'react';
33

44
type FormRowProps = {
55
children: ReactElement;
6-
label?: ReactNode;
6+
title: string;
77
isInvalid?: boolean;
88
error?: ReactNode | ReactNode[];
99
description?: string;
@@ -12,19 +12,17 @@ type FormRowProps = {
1212

1313
export const FormRow = ({
1414
children,
15-
label,
16-
isInvalid,
15+
title,
1716
error,
18-
...rest
17+
description,
18+
required,
1919
}: FormRowProps) => {
20-
// TODO: readd required, description, classname
2120
return (
22-
<div {...(rest as HTMLAttributes<HTMLElement>)}>
23-
{label && (
24-
<label>
25-
{label} {isInvalid && '!!!'}
26-
</label>
27-
)}
21+
<div>
22+
<label>
23+
{title} {required && <span style={{ color: 'red' }}>*</span>}
24+
</label>
25+
{description && <div>{description}</div>}
2826
{children}
2927
{error}
3028
</div>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ function PydanticFormContextProvider({
135135
const { pydanticFormSchema, isLoading: isParsingSchema } =
136136
usePydanticFormParser(
137137
rawSchema,
138-
formLabels,
138+
formLabels?.labels,
139139
fieldDetailProvider,
140140
formStructureMutator,
141141
);
@@ -223,7 +223,7 @@ function PydanticFormContextProvider({
223223
}
224224

225225
const initialData = getFormValuesFromFieldOrLabels(pydanticFormSchema, {
226-
...formLabels,
226+
...formLabels?.data,
227227
...customData,
228228
});
229229

frontend/packages/pydantic-forms/src/core/hooks/useLabelProvider.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616
*/
1717
import useSWR, { SWRConfiguration } from 'swr';
1818

19-
import { PydanticFormLabelProvider } from '@/types';
19+
import {
20+
PydanticFormLabelProvider,
21+
PydanticFormLabelProviderResponse,
22+
} from '@/types';
2023

2124
export function useLabelProvider(
2225
labelProvider?: PydanticFormLabelProvider,
@@ -25,7 +28,7 @@ export function useLabelProvider(
2528
cacheKey?: number,
2629
swrConfig?: SWRConfiguration,
2730
) {
28-
return useSWR<Record<string, string> | undefined>(
31+
return useSWR<PydanticFormLabelProviderResponse | undefined>(
2932
// cache key
3033
[labelProvider, formKey, id, swrConfig, cacheKey],
3134

frontend/packages/pydantic-forms/src/core/hooks/usePydanticFormParser.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,12 @@ const parseProperties = (
5454

5555
const parsedProperty: PydanticFormField = {
5656
id,
57-
title: translateLabel(
58-
propertyId,
59-
propertySchema.title,
60-
formLabels,
61-
),
57+
title:
58+
translateLabel(
59+
propertyId,
60+
propertySchema.title,
61+
formLabels,
62+
) || propertyId,
6263
description: translateLabel(
6364
`${propertyId}_info`,
6465
propertySchema.description,

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export enum PydanticFormState {
8383

8484
export interface PydanticFormField {
8585
id: string;
86-
title?: string;
86+
title: string;
8787
description?: string;
8888
type: PydanticFormFieldType;
8989
format: PydanticFormFieldFormat;
@@ -320,8 +320,7 @@ export type PydanticFormLabelProvider = ({
320320
}: {
321321
formKey: string;
322322
id?: string | null;
323-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
324-
}) => Promise<Record<string, any>>;
323+
}) => Promise<PydanticFormLabelProviderResponse>;
325324

326325
// will return column
327326
export type PydanticFormLayoutColumnProvider = (fieldId: string) => number;
@@ -360,6 +359,11 @@ export type PydanticFormCustomValidationRuleFn = (
360359
rhf?: ReturnType<typeof useForm>,
361360
) => Zod.ZodTypeAny | undefined;
362361

362+
export interface PydanticFormLabelProviderResponse {
363+
labels: Record<string, string>;
364+
data: Record<string, string>;
365+
}
366+
363367
export interface PydanticFormApiResponse {
364368
detail?: string;
365369
status: number;

0 commit comments

Comments
 (0)