Skip to content

Commit c9bb4a8

Browse files
authored
Merge pull request #109 from workfloworchestrator/1904-fix-datareset
1904 fix datareset
2 parents 51aca61 + 115232d commit c9bb4a8

File tree

8 files changed

+39
-36
lines changed

8 files changed

+39
-36
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'pydantic-forms': patch
3+
---
4+
5+
Expands configurable header component to include title. Aligns render components.

frontend/packages/pydantic-forms/src/components/form/Footer.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ const Footer = () => {
1818
cancelButton,
1919
resetButtonAlternative,
2020
sendLabel,
21-
footerComponent,
2221
allowUntouchedSubmit,
2322
hasNext,
2423
formInputData,
@@ -83,7 +82,6 @@ const Footer = () => {
8382

8483
return (
8584
<div style={{ height: '200px', marginTop: '24px' }}>
86-
{footerComponent && <div>{footerComponent}</div>}{' '}
8785
<div style={{ display: 'flex', gap: '16px' }}>
8886
{rhf.formState.isValid &&
8987
!allowUntouchedSubmit &&

frontend/packages/pydantic-forms/src/components/render/FormRenderer.tsx renamed to frontend/packages/pydantic-forms/src/components/form/Form.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ import React from 'react';
33
import { RenderFields } from '@/components/render';
44
import type { FormRenderComponent } from '@/types';
55

6-
export const FormRenderer: FormRenderComponent = ({
7-
pydanticFormComponents,
8-
}) => {
6+
export const Form: FormRenderComponent = ({ pydanticFormComponents }) => {
97
return <RenderFields pydanticFormComponents={pydanticFormComponents} />;
108
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* Pydantic Forms
3+
*
4+
* Header component
5+
*/
6+
import React from 'react';
7+
8+
import RenderFormErrors from '@/components/render/RenderFormErrors';
9+
import { usePydanticFormContext } from '@/core';
10+
11+
const Header = () => {
12+
const { pydanticFormSchema, title } = usePydanticFormContext();
13+
14+
return (
15+
<>
16+
<h2 style={{ margin: '1rem 0' }}>
17+
{title ?? pydanticFormSchema?.title}
18+
</h2>
19+
20+
<RenderFormErrors />
21+
</>
22+
);
23+
};
24+
25+
export default Header;

frontend/packages/pydantic-forms/src/components/render/RenderForm.tsx

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@ import React from 'react';
1010
import { useTranslations } from 'next-intl';
1111

1212
import Footer from '@/components/form/Footer';
13-
import RenderFormErrors from '@/components/render/RenderFormErrors';
13+
import { Form } from '@/components/form/Form';
14+
import Header from '@/components/form/Header';
1415
import { getPydanticFormComponents } from '@/core/helper';
1516
import { PydanticFormComponents, PydanticFormContextProps } from '@/types';
1617

17-
import { FormRenderer } from './FormRenderer';
18-
1918
const RenderForm = (contextProps: PydanticFormContextProps) => {
2019
const {
2120
submitForm,
@@ -25,12 +24,10 @@ const RenderForm = (contextProps: PydanticFormContextProps) => {
2524
isFullFilled,
2625
successNotice,
2726
isSending,
28-
title,
29-
headerComponent,
3027
skipSuccessNotice,
3128
loadingComponent,
3229
} = contextProps;
33-
const { formRenderer, footerRenderer } = config || {};
30+
const { formRenderer, footerRenderer, headerRenderer } = config || {};
3431

3532
const pydanticFormComponents: PydanticFormComponents =
3633
getPydanticFormComponents(
@@ -58,26 +55,14 @@ const RenderForm = (contextProps: PydanticFormContextProps) => {
5855
return <div>{successNotice ?? t('successfullySent')}</div>;
5956
}
6057

61-
const Renderer = formRenderer ?? FormRenderer;
58+
const FormRenderer = formRenderer ?? Form;
6259
const FooterRenderer = footerRenderer ?? Footer;
60+
const HeaderRenderer = headerRenderer ?? Header;
6361

6462
return (
6563
<form action={''} onSubmit={submitForm}>
66-
{title !== false &&
67-
title !== 'undefined' &&
68-
title !== 'unknown' && (
69-
<h2 style={{ margin: '1rem 0' }}>
70-
{title ?? pydanticFormSchema.title}
71-
</h2>
72-
)}
73-
74-
{headerComponent}
75-
76-
<RenderFormErrors />
77-
78-
<div>
79-
<Renderer pydanticFormComponents={pydanticFormComponents} />
80-
</div>
64+
<HeaderRenderer />
65+
<FormRenderer pydanticFormComponents={pydanticFormComponents} />
8166
<FooterRenderer />
8267
</form>
8368
);

frontend/packages/pydantic-forms/src/components/render/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
export * from './RenderFields';
2-
export * from './FormRenderer';
32
export * from './RenderForm';
43
export * from './RenderFormErrors';
54
export * from './RenderReactHookFormErrors';

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,6 @@ function PydanticFormContextProvider({
6262
metaData,
6363
title,
6464
sendLabel,
65-
headerComponent,
66-
footerComponent,
6765
loadingComponent,
6866
successNotice,
6967
onSuccess,
@@ -383,8 +381,6 @@ function PydanticFormContextProvider({
383381
isLoading,
384382
rhf,
385383
pydanticFormSchema,
386-
headerComponent,
387-
footerComponent,
388384
loadingComponent,
389385
onPrevious: () => goToPreviousStep(rhf?.getValues()),
390386
onCancel,

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ export interface PydanticFormInitialContextProps {
2626
onCancel?: () => void;
2727
onChange?: (fieldValues: FieldValues) => void;
2828
children: (props: PydanticFormContextProps) => React.ReactNode;
29-
headerComponent?: React.ReactNode;
30-
footerComponent?: React.ReactNode;
3129
loadingComponent?: React.ReactNode;
3230
hasCardWrapper?: boolean;
3331
config: PydanticFormsContextConfig;
@@ -66,8 +64,6 @@ export interface PydanticFormContextProps {
6664
submitForm: FormEventHandler<HTMLFormElement>;
6765
resetForm: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
6866
successNotice?: React.ReactNode;
69-
headerComponent?: React.ReactNode;
70-
footerComponent?: React.ReactNode;
7167
loadingComponent?: React.ReactNode;
7268
allowUntouchedSubmit?: boolean;
7369
skipSuccessNotice?: boolean;
@@ -297,6 +293,7 @@ export interface PydanticFormsContextConfig {
297293

298294
formRenderer?: FormRenderComponent;
299295
footerRenderer?: React.JSXElementConstructor<object>;
296+
headerRenderer?: React.JSXElementConstructor<object>;
300297
rowRenderer?: RowRenderComponent;
301298

302299
// Extend field definitions

0 commit comments

Comments
 (0)