import React, { PureComponent, Component } from 'react'; import JSONSchemaForm, { FormProps } from '@rjsf/core'; import validator from '@rjsf/validator-ajv8'; import type { Base16Theme } from 'react-base16-styling'; import createStyledComponent from '../utils/createStyledComponent'; import styles from './styles'; import Button from '../Button'; import customWidgets from './widgets'; const FormContainer = createStyledComponent(styles, JSONSchemaForm); export interface Props extends Omit, 'validator'> { children?: React.ReactNode; submitText?: string; primaryButton?: boolean; noSubmit?: boolean; theme?: Base16Theme; } /** * Wrapper around [`react-jsonschema-form`](https://github.com/rjsf-team/react-jsonschema-form) with custom widgets. */ export default class Form extends (PureComponent || Component)> { render() { const { widgets, children, submitText, primaryButton, noSubmit, ...rest } = this.props; return ( )} validator={validator} widgets={{ ...customWidgets, ...widgets }} > {noSubmit ? (