import { Form } from "@remix-run/react"; import React from "react"; import invariant from "tiny-invariant"; import { Button } from "./Button"; import { Dialog } from "./Dialog"; export function FormWithConfirm({ fields, children, dialogHeading, }: { fields: [name: string, value: string | number][]; children: React.ReactNode; dialogHeading: string; }) { const [dialogOpen, setDialogOpen] = React.useState(false); const formRef = React.useRef(null); const id = React.useId(); const openDialog = () => setDialogOpen(true); const closeDialog = () => setDialogOpen(false); invariant(React.isValidElement(children)); return ( <>
{fields.map(([name, value]) => ( ))}

{dialogHeading}

{React.cloneElement(children, { onClick: openDialog, })} ); }