import { Alert, Button, Grid, Snackbar, Typography, TypographyProps, } from "@mui/material" import {ReactElement, useEffect, useState} from "react" import {LoadingButton} from "@mui/lab" import {MdChevronRight} from "react-icons/md" import {OverrideProps} from "@mui/types" import {TiCancel} from "react-icons/ti" export interface SimpleFormProps { title: string description: string continueActionLabel: string children?: ReactElement[] cancelActionLabel?: string isSubmitting?: boolean titleVariant?: TypographyProps["variant"] titleComponent?: OverrideProps["component"] nonFieldError?: string } export default function SimpleForm({ title, description, children, continueActionLabel, cancelActionLabel, nonFieldError, titleVariant = "h4", titleComponent = "h1", isSubmitting = false, }: SimpleFormProps): ReactElement { const [showSnackbar, setShowSnackbar] = useState(false) useEffect(() => { if (nonFieldError) { setShowSnackbar(true) } }, [nonFieldError]) return ( <> {title} {description} {children && ( {children.map(input => ( {input} ))} )} {cancelActionLabel && ( )} } > {continueActionLabel} setShowSnackbar(false)} autoHideDuration={5000} > {nonFieldError} ) }