@reformer/renderer-json 1.0.0-beta.4 → 1.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -25,7 +25,7 @@ export interface JsonFormRendererProps<T> {
|
|
|
25
25
|
* @example
|
|
26
26
|
* ```tsx
|
|
27
27
|
* import { useMemo } from 'react';
|
|
28
|
-
* import {
|
|
28
|
+
* import { createForm } from '@reformer/core';
|
|
29
29
|
* import { Input, FormField } from '@reformer/ui-kit';
|
|
30
30
|
* import {
|
|
31
31
|
* JsonFormRenderer,
|
|
@@ -45,22 +45,36 @@ export interface JsonFormRendererProps<T> {
|
|
|
45
45
|
* },
|
|
46
46
|
* };
|
|
47
47
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
48
|
+
* type MyForm = { email: string };
|
|
49
|
+
*
|
|
50
|
+
* function MyFormPage() {
|
|
51
|
+
* // form живёт в page-state и передаётся в registry через closure (см. ниже)
|
|
52
|
+
* const form = useMemo(() => createForm<MyForm>({
|
|
53
|
+
* form: { email: { value: '', component: Input, componentProps: { label: 'Email' } } },
|
|
54
|
+
* }), []);
|
|
55
|
+
*
|
|
56
|
+
* // registry с FormRoot-closure: компоненты, использующие форму, получают её
|
|
57
|
+
* // через componentProps closure (JsonFormRenderer НЕ имеет form-prop'а — это by-design,
|
|
58
|
+
* // т.к. JSON-схема статична, а форма runtime).
|
|
59
|
+
* const registry = useMemo(() => defineRegistry((reg) => {
|
|
60
|
+
* reg.field('Input', Input);
|
|
61
|
+
* reg.container('Box', ({ children }) => <div>{children}</div>);
|
|
62
|
+
* reg.container(FIELD_WRAPPER, FormField);
|
|
63
|
+
* }), []);
|
|
53
64
|
*
|
|
54
|
-
* function MyForm() {
|
|
55
|
-
* const form = useMemo(() => getReformerForm({ email: '' }), []);
|
|
56
65
|
* return (
|
|
57
|
-
* <JsonRendererProvider settings={{ registry }}>
|
|
58
|
-
* <JsonFormRenderer schema={schema}
|
|
66
|
+
* <JsonRendererProvider settings={{ registry, form }}>
|
|
67
|
+
* <JsonFormRenderer schema={schema} />
|
|
59
68
|
* </JsonRendererProvider>
|
|
60
69
|
* );
|
|
61
70
|
* }
|
|
62
71
|
* ```
|
|
63
72
|
*
|
|
73
|
+
* **Note**: `JsonFormRenderer` принимает ТОЛЬКО `{ schema, renderBehavior?, onSchemaReady? }`.
|
|
74
|
+
* Форма передаётся в render-pipeline через {@link JsonRendererProvider} settings или через
|
|
75
|
+
* closure-pattern с {@link createRenderSchemaFromJson} + `FormRoot.__selfManagedChildren = true`
|
|
76
|
+
* (см. recipe `multi-step-from-json` в `docs/llms/`).
|
|
77
|
+
*
|
|
64
78
|
* @see [docs/llms/01-overview.md](../../docs/llms/01-overview.md)
|
|
65
79
|
*/
|
|
66
80
|
export declare function JsonFormRenderer<T>({ schema, renderBehavior, onSchemaReady, }: JsonFormRendererProps<T>): ReactNode;
|