@metaobjectsdev/codegen-ts-react 0.17.1 → 0.18.0-rc.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file.d.ts","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"form-file.d.ts","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAa,UAAU,EAAgB,MAAM,0BAA0B,CAAC;AA0B/E,OAAO,EAAE,KAAK,aAAa,EAAgE,MAAM,4BAA4B,CAAC;AA2O9H,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAqL7E"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// React form template — emits a per-entity Form component that delegates
|
|
2
|
-
// to useEntityForm from @metaobjectsdev/react.
|
|
3
|
-
//
|
|
4
|
-
// let the helper carry all metadata-derived attrs.
|
|
2
|
+
// to useEntityForm from @metaobjectsdev/react. Each visible field is
|
|
3
|
+
// dispatched to a control by its declared view kind.
|
|
5
4
|
//
|
|
6
5
|
// What gets emitted:
|
|
7
|
-
// - A `<EntityName>Form` component
|
|
8
|
-
// form.input.<field> onto <input>
|
|
6
|
+
// - A `<EntityName>Form` component. A plain scalar field (no view kind)
|
|
7
|
+
// spreads form.input.<field> onto a typed <input> (carries aria-label
|
|
8
|
+
// via useEntityForm's `.input` accessor). A field with a view kind
|
|
9
|
+
// (view.textarea/checkbox/radio, or an enum defaulting to a dropdown)
|
|
10
|
+
// is dispatched by fieldControlFor to a <select>/<textarea>/checkbox
|
|
11
|
+
// <input>/radio <fieldset>, bound via `{...form.register("<name>")}`
|
|
12
|
+
// and given a matching explicit `aria-label`.
|
|
9
13
|
// - Per-entity onSubmit/defaultValues typed against the Row type.
|
|
10
14
|
//
|
|
11
15
|
// Fields excluded from the form by default:
|
|
@@ -17,7 +21,7 @@
|
|
|
17
21
|
// object metadata. Default off. Most projects don't need stock forms.
|
|
18
22
|
import { code, imp } from "ts-poet";
|
|
19
23
|
import { MetaField, MetaObject, stripPackage } from "@metaobjectsdev/metadata";
|
|
20
|
-
import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_ATTR_FIELDS, FIELD_ATTR_DEFAULT, FIELD_SUBTYPE_OBJECT, FIELD_ATTR_OBJECT_REF, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, } from "@metaobjectsdev/metadata";
|
|
24
|
+
import { IDENTITY_SUBTYPE_PRIMARY, IDENTITY_ATTR_FIELDS, FIELD_ATTR_DEFAULT, FIELD_SUBTYPE_OBJECT, FIELD_ATTR_OBJECT_REF, FIELD_SUBTYPE_INT, FIELD_SUBTYPE_LONG, FIELD_SUBTYPE_DOUBLE, FIELD_SUBTYPE_FLOAT, FIELD_SUBTYPE_DECIMAL, FIELD_SUBTYPE_CURRENCY, FIELD_SUBTYPE_BOOLEAN, FIELD_SUBTYPE_DATE, FIELD_SUBTYPE_TIME, FIELD_SUBTYPE_TIMESTAMP, FIELD_ATTR_FORM_EXCLUDE, FIELD_ATTR_VALUES, FIELD_ATTR_REQUIRED, FIELD_SUBTYPE_ENUM, VIEW_SUBTYPE_TEXTAREA, VIEW_SUBTYPE_DROPDOWN, VIEW_SUBTYPE_CHECKBOX, VIEW_SUBTYPE_RADIO, } from "@metaobjectsdev/metadata";
|
|
21
25
|
import { entityModuleSpecifier, GENERATED_HEADER, tphDiscriminatorPin } from "@metaobjectsdev/codegen-ts";
|
|
22
26
|
function primaryFieldNames(entity) {
|
|
23
27
|
const set = new Set();
|
|
@@ -53,7 +57,7 @@ function visibleFields(entity, discField) {
|
|
|
53
57
|
// fields() returns effective fields, so inherited fields (from extends:/super:) are included in forms.
|
|
54
58
|
for (const child of entity.fields()) {
|
|
55
59
|
// ADR-0039: resolving — a field may inherit @formExclude via extends.
|
|
56
|
-
if (child.attr(
|
|
60
|
+
if (child.attr(FIELD_ATTR_FORM_EXCLUDE) === true)
|
|
57
61
|
continue;
|
|
58
62
|
if (pkNames.has(child.name))
|
|
59
63
|
continue;
|
|
@@ -220,6 +224,20 @@ ${inner.join("\n")}
|
|
|
220
224
|
hooks,
|
|
221
225
|
};
|
|
222
226
|
}
|
|
227
|
+
/** The view kind that drives control selection: an explicit view child wins;
|
|
228
|
+
* an enum with no view defaults to a dropdown; otherwise null (typed <input>). */
|
|
229
|
+
function viewKindFor(field) {
|
|
230
|
+
const view = field.views()[0]; // resolving accessor (ADR-0039)
|
|
231
|
+
if (view !== undefined)
|
|
232
|
+
return view.subType;
|
|
233
|
+
if (field.subType === FIELD_SUBTYPE_ENUM)
|
|
234
|
+
return VIEW_SUBTYPE_DROPDOWN;
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
/** The field's declared @values (enum member symbols), or [] when absent. */
|
|
238
|
+
function enumValues(field) {
|
|
239
|
+
return field.attr(FIELD_ATTR_VALUES) ?? [];
|
|
240
|
+
}
|
|
223
241
|
export function renderFormFile(entity, ctx) {
|
|
224
242
|
const entityName = entity.name;
|
|
225
243
|
// Import the entity's own file. Same target → relative "./Entity"; cross
|
|
@@ -250,6 +268,52 @@ export function renderFormFile(entity, ctx) {
|
|
|
250
268
|
</span>
|
|
251
269
|
)}
|
|
252
270
|
</div>`;
|
|
271
|
+
// Shared label + control + error wrapper used by the view-kind dispatch
|
|
272
|
+
// branches below (select / textarea / checkbox / radio). `scalarBlock`
|
|
273
|
+
// stays untouched as the plain-<input> fallback (bound via `form.input.*`).
|
|
274
|
+
const labelAndError = (f, control) => ` <div className="metaobjects-field" key=${JSON.stringify(f)}>
|
|
275
|
+
<label className="metaobjects-field-label" htmlFor={${entityName}.${f}.name}>
|
|
276
|
+
{${entityName}.${f}.label}
|
|
277
|
+
</label>
|
|
278
|
+
${control}
|
|
279
|
+
{form.formState.errors.${f} !== undefined && (
|
|
280
|
+
<span className="metaobjects-field-error" role="alert">
|
|
281
|
+
{String(form.formState.errors.${f}?.message ?? '')}
|
|
282
|
+
</span>
|
|
283
|
+
)}
|
|
284
|
+
</div>`;
|
|
285
|
+
// Dispatch a visible scalar field to its control by declared view kind: an
|
|
286
|
+
// explicit view.textarea/checkbox/radio child, or an enum defaulting to a
|
|
287
|
+
// dropdown when it carries no explicit view. Everything else falls back to
|
|
288
|
+
// scalarBlock's typed <input> bound via `form.input.<field>`.
|
|
289
|
+
const fieldControlFor = (field) => {
|
|
290
|
+
const name = field.name;
|
|
291
|
+
const kind = viewKindFor(field);
|
|
292
|
+
// Enum member symbols are validated to /^[A-Za-z_][A-Za-z0-9_]*$/, so raw
|
|
293
|
+
// interpolation into JSX attribute/text positions is safe (no escaping).
|
|
294
|
+
if (kind === VIEW_SUBTYPE_DROPDOWN) {
|
|
295
|
+
const values = enumValues(field);
|
|
296
|
+
const required = field.attr(FIELD_ATTR_REQUIRED) === true;
|
|
297
|
+
const empty = required ? "" : ` <option value="">Select…</option>\n`;
|
|
298
|
+
const options = values.map((v) => ` <option value="${v}">${v}</option>`).join("\n");
|
|
299
|
+
return labelAndError(name, ` <select aria-label={${entityName}.${name}.label} className="metaobjects-field-input" {...form.register("${name}")}>\n${empty}${options}\n </select>`);
|
|
300
|
+
}
|
|
301
|
+
if (kind === VIEW_SUBTYPE_TEXTAREA) {
|
|
302
|
+
// Configurable @rows is deferred (see the spec's Deferred work); default to 4.
|
|
303
|
+
return labelAndError(name, ` <textarea aria-label={${entityName}.${name}.label} className="metaobjects-field-input" rows={4} {...form.register("${name}")} />`);
|
|
304
|
+
}
|
|
305
|
+
if (kind === VIEW_SUBTYPE_CHECKBOX) {
|
|
306
|
+
return labelAndError(name, ` <input aria-label={${entityName}.${name}.label} type="checkbox" className="metaobjects-field-checkbox" {...form.register("${name}")} />`);
|
|
307
|
+
}
|
|
308
|
+
if (kind === VIEW_SUBTYPE_RADIO) {
|
|
309
|
+
const values = enumValues(field);
|
|
310
|
+
const radios = values
|
|
311
|
+
.map((v) => ` <label className="metaobjects-field-radio"><input type="radio" value="${v}" {...form.register("${name}")} /> ${v}</label>`)
|
|
312
|
+
.join("\n");
|
|
313
|
+
return labelAndError(name, ` <fieldset aria-label={${entityName}.${name}.label} className="metaobjects-field-radios">\n${radios}\n </fieldset>`);
|
|
314
|
+
}
|
|
315
|
+
return scalarBlock(name);
|
|
316
|
+
};
|
|
253
317
|
// For each visible field: scalars keep the flat `form.input.<field>` block; a
|
|
254
318
|
// `field.object` with a resolvable `@objectRef` recurses into the referenced
|
|
255
319
|
// value object as a nested <fieldset> sub-form (issue #95). useFieldArray
|
|
@@ -258,7 +322,7 @@ export function renderFormFile(entity, ctx) {
|
|
|
258
322
|
const fieldArrayHooks = [];
|
|
259
323
|
for (const f of fields) {
|
|
260
324
|
if (resolveValueObject(f, ctx) === undefined) {
|
|
261
|
-
blocks.push(
|
|
325
|
+
blocks.push(fieldControlFor(f));
|
|
262
326
|
continue;
|
|
263
327
|
}
|
|
264
328
|
const r = renderNestedField(f, f.name, false, ctx, new Set(), 0);
|
|
@@ -307,9 +371,11 @@ export function ${entityName}Form(props: ${entityName}FormProps): ${ReactElement
|
|
|
307
371
|
onSubmit={form.handleSubmit(props.onSubmit as never)}
|
|
308
372
|
>
|
|
309
373
|
${fieldBlocks}
|
|
310
|
-
<
|
|
311
|
-
{
|
|
312
|
-
|
|
374
|
+
<div className="metaobjects-form-actions">
|
|
375
|
+
<button className="metaobjects-form-submit" type="submit" disabled={form.formState.isSubmitting}>
|
|
376
|
+
{props.submitLabel ?? 'Submit'}
|
|
377
|
+
</button>
|
|
378
|
+
</div>
|
|
313
379
|
</form>
|
|
314
380
|
);
|
|
315
381
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-file.js","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-file.js","sourceRoot":"","sources":["../../src/templates/form-file.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metaobjectsdev/codegen-ts-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0-rc.1",
|
|
4
4
|
"description": "React codegen for metaobjects — emits <Entity>.form.tsx files using react-hook-form and @metaobjectsdev/react helpers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@metaobjectsdev/metadata": "0.
|
|
49
|
-
"@metaobjectsdev/codegen-ts": "0.
|
|
48
|
+
"@metaobjectsdev/metadata": "0.18.0-rc.1",
|
|
49
|
+
"@metaobjectsdev/codegen-ts": "0.18.0-rc.1",
|
|
50
50
|
"ts-poet": "^6.10.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// React form template — emits a per-entity Form component that delegates
|
|
2
|
-
// to useEntityForm from @metaobjectsdev/react.
|
|
3
|
-
//
|
|
4
|
-
// let the helper carry all metadata-derived attrs.
|
|
2
|
+
// to useEntityForm from @metaobjectsdev/react. Each visible field is
|
|
3
|
+
// dispatched to a control by its declared view kind.
|
|
5
4
|
//
|
|
6
5
|
// What gets emitted:
|
|
7
|
-
// - A `<EntityName>Form` component
|
|
8
|
-
// form.input.<field> onto <input>
|
|
6
|
+
// - A `<EntityName>Form` component. A plain scalar field (no view kind)
|
|
7
|
+
// spreads form.input.<field> onto a typed <input> (carries aria-label
|
|
8
|
+
// via useEntityForm's `.input` accessor). A field with a view kind
|
|
9
|
+
// (view.textarea/checkbox/radio, or an enum defaulting to a dropdown)
|
|
10
|
+
// is dispatched by fieldControlFor to a <select>/<textarea>/checkbox
|
|
11
|
+
// <input>/radio <fieldset>, bound via `{...form.register("<name>")}`
|
|
12
|
+
// and given a matching explicit `aria-label`.
|
|
9
13
|
// - Per-entity onSubmit/defaultValues typed against the Row type.
|
|
10
14
|
//
|
|
11
15
|
// Fields excluded from the form by default:
|
|
@@ -34,6 +38,14 @@ import {
|
|
|
34
38
|
FIELD_SUBTYPE_DATE,
|
|
35
39
|
FIELD_SUBTYPE_TIME,
|
|
36
40
|
FIELD_SUBTYPE_TIMESTAMP,
|
|
41
|
+
FIELD_ATTR_FORM_EXCLUDE,
|
|
42
|
+
FIELD_ATTR_VALUES,
|
|
43
|
+
FIELD_ATTR_REQUIRED,
|
|
44
|
+
FIELD_SUBTYPE_ENUM,
|
|
45
|
+
VIEW_SUBTYPE_TEXTAREA,
|
|
46
|
+
VIEW_SUBTYPE_DROPDOWN,
|
|
47
|
+
VIEW_SUBTYPE_CHECKBOX,
|
|
48
|
+
VIEW_SUBTYPE_RADIO,
|
|
37
49
|
} from "@metaobjectsdev/metadata";
|
|
38
50
|
import { type RenderContext, entityModuleSpecifier, GENERATED_HEADER, tphDiscriminatorPin } from "@metaobjectsdev/codegen-ts";
|
|
39
51
|
|
|
@@ -69,7 +81,7 @@ function visibleFields(entity: MetaObject, discField?: string): MetaField[] {
|
|
|
69
81
|
// fields() returns effective fields, so inherited fields (from extends:/super:) are included in forms.
|
|
70
82
|
for (const child of entity.fields()) {
|
|
71
83
|
// ADR-0039: resolving — a field may inherit @formExclude via extends.
|
|
72
|
-
if (child.attr(
|
|
84
|
+
if (child.attr(FIELD_ATTR_FORM_EXCLUDE) === true) continue;
|
|
73
85
|
if (pkNames.has(child.name)) continue;
|
|
74
86
|
if (isAutoManaged(child)) continue;
|
|
75
87
|
if (discField !== undefined && child.name === discField) continue;
|
|
@@ -256,6 +268,20 @@ ${inner.join("\n")}
|
|
|
256
268
|
};
|
|
257
269
|
}
|
|
258
270
|
|
|
271
|
+
/** The view kind that drives control selection: an explicit view child wins;
|
|
272
|
+
* an enum with no view defaults to a dropdown; otherwise null (typed <input>). */
|
|
273
|
+
function viewKindFor(field: MetaField): string | null {
|
|
274
|
+
const view = field.views()[0]; // resolving accessor (ADR-0039)
|
|
275
|
+
if (view !== undefined) return view.subType;
|
|
276
|
+
if (field.subType === FIELD_SUBTYPE_ENUM) return VIEW_SUBTYPE_DROPDOWN;
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/** The field's declared @values (enum member symbols), or [] when absent. */
|
|
281
|
+
function enumValues(field: MetaField): string[] {
|
|
282
|
+
return (field.attr(FIELD_ATTR_VALUES) as string[] | undefined) ?? [];
|
|
283
|
+
}
|
|
284
|
+
|
|
259
285
|
export function renderFormFile(entity: MetaObject, ctx: RenderContext): string {
|
|
260
286
|
const entityName = entity.name;
|
|
261
287
|
// Import the entity's own file. Same target → relative "./Entity"; cross
|
|
@@ -295,6 +321,70 @@ export function renderFormFile(entity: MetaObject, ctx: RenderContext): string {
|
|
|
295
321
|
)}
|
|
296
322
|
</div>`;
|
|
297
323
|
|
|
324
|
+
// Shared label + control + error wrapper used by the view-kind dispatch
|
|
325
|
+
// branches below (select / textarea / checkbox / radio). `scalarBlock`
|
|
326
|
+
// stays untouched as the plain-<input> fallback (bound via `form.input.*`).
|
|
327
|
+
const labelAndError = (f: string, control: string) =>
|
|
328
|
+
` <div className="metaobjects-field" key=${JSON.stringify(f)}>
|
|
329
|
+
<label className="metaobjects-field-label" htmlFor={${entityName}.${f}.name}>
|
|
330
|
+
{${entityName}.${f}.label}
|
|
331
|
+
</label>
|
|
332
|
+
${control}
|
|
333
|
+
{form.formState.errors.${f} !== undefined && (
|
|
334
|
+
<span className="metaobjects-field-error" role="alert">
|
|
335
|
+
{String(form.formState.errors.${f}?.message ?? '')}
|
|
336
|
+
</span>
|
|
337
|
+
)}
|
|
338
|
+
</div>`;
|
|
339
|
+
|
|
340
|
+
// Dispatch a visible scalar field to its control by declared view kind: an
|
|
341
|
+
// explicit view.textarea/checkbox/radio child, or an enum defaulting to a
|
|
342
|
+
// dropdown when it carries no explicit view. Everything else falls back to
|
|
343
|
+
// scalarBlock's typed <input> bound via `form.input.<field>`.
|
|
344
|
+
const fieldControlFor = (field: MetaField): string => {
|
|
345
|
+
const name = field.name;
|
|
346
|
+
const kind = viewKindFor(field);
|
|
347
|
+
// Enum member symbols are validated to /^[A-Za-z_][A-Za-z0-9_]*$/, so raw
|
|
348
|
+
// interpolation into JSX attribute/text positions is safe (no escaping).
|
|
349
|
+
if (kind === VIEW_SUBTYPE_DROPDOWN) {
|
|
350
|
+
const values = enumValues(field);
|
|
351
|
+
const required = field.attr(FIELD_ATTR_REQUIRED) === true;
|
|
352
|
+
const empty = required ? "" : ` <option value="">Select…</option>\n`;
|
|
353
|
+
const options = values.map((v) => ` <option value="${v}">${v}</option>`).join("\n");
|
|
354
|
+
return labelAndError(
|
|
355
|
+
name,
|
|
356
|
+
` <select aria-label={${entityName}.${name}.label} className="metaobjects-field-input" {...form.register("${name}")}>\n${empty}${options}\n </select>`,
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
if (kind === VIEW_SUBTYPE_TEXTAREA) {
|
|
360
|
+
// Configurable @rows is deferred (see the spec's Deferred work); default to 4.
|
|
361
|
+
return labelAndError(
|
|
362
|
+
name,
|
|
363
|
+
` <textarea aria-label={${entityName}.${name}.label} className="metaobjects-field-input" rows={4} {...form.register("${name}")} />`,
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
if (kind === VIEW_SUBTYPE_CHECKBOX) {
|
|
367
|
+
return labelAndError(
|
|
368
|
+
name,
|
|
369
|
+
` <input aria-label={${entityName}.${name}.label} type="checkbox" className="metaobjects-field-checkbox" {...form.register("${name}")} />`,
|
|
370
|
+
);
|
|
371
|
+
}
|
|
372
|
+
if (kind === VIEW_SUBTYPE_RADIO) {
|
|
373
|
+
const values = enumValues(field);
|
|
374
|
+
const radios = values
|
|
375
|
+
.map(
|
|
376
|
+
(v) =>
|
|
377
|
+
` <label className="metaobjects-field-radio"><input type="radio" value="${v}" {...form.register("${name}")} /> ${v}</label>`,
|
|
378
|
+
)
|
|
379
|
+
.join("\n");
|
|
380
|
+
return labelAndError(
|
|
381
|
+
name,
|
|
382
|
+
` <fieldset aria-label={${entityName}.${name}.label} className="metaobjects-field-radios">\n${radios}\n </fieldset>`,
|
|
383
|
+
);
|
|
384
|
+
}
|
|
385
|
+
return scalarBlock(name);
|
|
386
|
+
};
|
|
387
|
+
|
|
298
388
|
// For each visible field: scalars keep the flat `form.input.<field>` block; a
|
|
299
389
|
// `field.object` with a resolvable `@objectRef` recurses into the referenced
|
|
300
390
|
// value object as a nested <fieldset> sub-form (issue #95). useFieldArray
|
|
@@ -303,7 +393,7 @@ export function renderFormFile(entity: MetaObject, ctx: RenderContext): string {
|
|
|
303
393
|
const fieldArrayHooks: string[] = [];
|
|
304
394
|
for (const f of fields) {
|
|
305
395
|
if (resolveValueObject(f, ctx) === undefined) {
|
|
306
|
-
blocks.push(
|
|
396
|
+
blocks.push(fieldControlFor(f));
|
|
307
397
|
continue;
|
|
308
398
|
}
|
|
309
399
|
const r = renderNestedField(f, f.name, false, ctx, new Set<string>(), 0);
|
|
@@ -357,9 +447,11 @@ export function ${entityName}Form(props: ${entityName}FormProps): ${ReactElement
|
|
|
357
447
|
onSubmit={form.handleSubmit(props.onSubmit as never)}
|
|
358
448
|
>
|
|
359
449
|
${fieldBlocks}
|
|
360
|
-
<
|
|
361
|
-
{
|
|
362
|
-
|
|
450
|
+
<div className="metaobjects-form-actions">
|
|
451
|
+
<button className="metaobjects-form-submit" type="submit" disabled={form.formState.isSubmitting}>
|
|
452
|
+
{props.submitLabel ?? 'Submit'}
|
|
453
|
+
</button>
|
|
454
|
+
</div>
|
|
363
455
|
</form>
|
|
364
456
|
);
|
|
365
457
|
}
|