Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
2.5 kB ยท 82 lines
TSX
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283"use client";
import { Button } from "@openstatus/ui/components/ui/button";import { useState } from "react";
import { FormCard, FormCardGroup } from "@/components/forms/form-card";import { FormSheetContent, FormSheetDescription, FormSheetFooter, FormSheetHeader, FormSheetTitle, FormSheetTrigger, FormSheetWithDirtyProtection,} from "@/components/forms/form-sheet";import { FormStatusReportUpdate, type FormValues,} from "@/components/forms/status-report-update/form";
export function FormSheetStatusReportUpdate({ children, defaultValues, onSubmit, components, allowUnsetImpacts, open: controlledOpen, onOpenChange,}: Omit<React.ComponentProps<typeof FormSheetTrigger>, "onSubmit"> & { defaultValues?: Partial<FormValues>; onSubmit: (values: FormValues) => Promise<void>; components?: { id: number; name: string }[]; allowUnsetImpacts?: boolean; open?: boolean; onOpenChange?: (open: boolean) => void;}) { const [internalOpen, setInternalOpen] = useState(false); const isControlled = controlledOpen !== undefined; const open = isControlled ? controlledOpen : internalOpen; const setOpen = (next: boolean) => { if (isControlled) { onOpenChange?.(next); } else { setInternalOpen(next); } }; return ( <FormSheetWithDirtyProtection open={open} onOpenChange={setOpen}> {children ? ( <FormSheetTrigger asChild>{children}</FormSheetTrigger> ) : null} <FormSheetContent className="sm:max-w-lg"> <FormSheetHeader> <FormSheetTitle>Status Report Update</FormSheetTitle> <FormSheetDescription> Configure and update the status of your report. </FormSheetDescription> </FormSheetHeader> <FormCardGroup className="overflow-y-scroll"> <FormCard className="overflow-auto rounded-none border-none"> <FormStatusReportUpdate id="status-report-update-form" className="my-4" onSubmit={async (values) => { await onSubmit(values); setOpen(false); }} defaultValues={defaultValues} components={components} allowUnsetImpacts={allowUnsetImpacts} /> </FormCard> </FormCardGroup> <FormSheetFooter> <Button type="submit" form="status-report-update-form"> Submit </Button> </FormSheetFooter> </FormSheetContent> </FormSheetWithDirtyProtection> );}