Files
Stirling-PDF/client-tauri/src/components/fields/BuildFields.tsx

31 lines
1.1 KiB
TypeScript
Raw Normal View History

import Joi from "@stirling-tools/joi";
2024-02-25 20:55:48 +01:00
import { GenericField } from "./GenericField";
import React from "react";
interface BuildFieldsProps {
/** The text to display inside the button */
schemaDescription: Joi.Description | undefined;
2024-02-25 20:55:48 +01:00
onSubmit: React.FormEventHandler<HTMLFormElement>;
}
2024-02-25 20:55:48 +01:00
export function BuildFields({ schemaDescription, onSubmit }: BuildFieldsProps) {
console.log("Render Build Fields", schemaDescription);
2024-02-25 20:55:48 +01:00
const label = (schemaDescription?.flags as any)?.label
const description = (schemaDescription?.flags as any)?.description;
const values = (schemaDescription?.keys as any)?.values.keys as { [key: string]: Joi.Description};
return (
2024-02-25 20:55:48 +01:00
<div>
<h3>{label}</h3>
{description}
<hr />
<form onSubmit={(e) => { onSubmit(e); e.preventDefault(); }}>
{
values ? Object.keys(values).map((key, i) => {
return (<GenericField key={key} fieldName={key} joiDefinition={values[key]} />)
}) : undefined
}
<input type="submit" value="Submit" />
</form>
</div>
);
}