All files / js/widgets SimpleFormDialog.tsx

100% Statements 8/8
100% Branches 0/0
100% Functions 6/6
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55                                              558x     6x       2x 2x     558x   6x     1x             1x                
import {
    Button,
    Dialog,
    DialogActions,
    DialogContent,
    DialogTitle,
} from "@mui/material";
import React, {useState} from "react";
 
export type ButtonProps = {
    color?: "inherit",
    startIcon?: JSX.Element
}
 
type Props = {
    formik: any,
    buttonText: string,
    fields: JSX.Element,
    button: ButtonProps
}
 
export default function SimpleFormDialog(props: Props) {
 
    const [open, setOpen] = useState(false);
 
    function handleClickOpen() {
        setOpen(true);
    }
 
    function handleClose() {
        setOpen(false);
        props.formik.resetForm();
    }
 
    return (
        <>
            <Button {...props.button} onClick={() => handleClickOpen()}>
                {props.buttonText}
            </Button>
            <Dialog open={open} onClose={() => handleClose()}>
                <DialogTitle>{props.buttonText}</DialogTitle>
                <form onSubmit={props.formik.handleSubmit}>
                    <DialogContent>
                        {props.fields}
                    </DialogContent>
                    <DialogActions>
                        <Button onClick={() => handleClose()}>Cancel</Button>
                        <Button type="submit">Submit</Button>
                    </DialogActions>
                </form>
            </Dialog>
        </>
    );
}