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.1 kB ยท 72 lines
TSX
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273"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 { type DeclareIncidentValues, FormDeclareIncident, type FormValues,} from "./form";
export function FormSheetDeclareIncident({ children, defaultValues, onSubmit, footer, slack,}: { children: React.ReactNode; defaultValues?: Partial<FormValues>; onSubmit: (values: DeclareIncidentValues) => Promise<void>; footer?: React.ReactNode; slack: "ready" | "reconnect" | "disconnected";}) { const [open, setOpen] = useState(false);
return ( <FormSheetWithDirtyProtection open={open} onOpenChange={setOpen}> <FormSheetTrigger asChild>{children}</FormSheetTrigger> <FormSheetContent className="sm:max-w-lg"> <FormSheetHeader> <FormSheetTitle>Declare incident</FormSheetTitle> <FormSheetDescription> An internal record for the team: severity, commander and a timeline. Nothing is published until you create a status report. </FormSheetDescription> </FormSheetHeader> <FormCardGroup className="overflow-y-scroll"> <FormCard className="overflow-auto rounded-none border-none"> <FormDeclareIncident id="declare-incident-form" className="my-4" defaultValues={defaultValues} slack={slack} onSubmit={async (values) => { await onSubmit(values); setOpen(false); }} /> </FormCard> </FormCardGroup> {footer} <FormSheetFooter> <Button type="submit" form="declare-incident-form"> Declare </Button> </FormSheetFooter> </FormSheetContent> </FormSheetWithDirtyProtection> );}