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.3 kB ยท 76 lines
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677"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, FormSheetFooterInfo, FormSheetHeader, FormSheetTitle, FormSheetTrigger, FormSheetWithDirtyProtection,} from "@/components/forms/form-sheet";import { FormMaintenance, type FormValues,} from "@/components/forms/maintenance/form";import type { CheckboxTreeItem } from "@/components/ui/checkbox-tree";
export function FormSheetMaintenance({ children, defaultValues, onSubmit, items, ...props}: Omit<React.ComponentProps<typeof FormSheetTrigger>, "onSubmit"> & { defaultValues?: FormValues; items: CheckboxTreeItem[]; onSubmit: (values: FormValues) => Promise<void>;}) { const [open, setOpen] = useState(false);
return ( <FormSheetWithDirtyProtection open={open} onOpenChange={setOpen}> <FormSheetTrigger {...props} asChild> {children} </FormSheetTrigger> <FormSheetContent className="sm:max-w-lg"> <FormSheetHeader> <FormSheetTitle>Maintenance</FormSheetTitle> <FormSheetDescription> Configure and update the maintenance. </FormSheetDescription> </FormSheetHeader> <FormCardGroup className="overflow-y-auto"> <FormCard className="overflow-auto rounded-none border-none"> <FormMaintenance items={items} onSubmit={async (values) => { await onSubmit(values); setOpen(false); }} defaultValues={defaultValues} id="maintenance-form" className="my-4" /> </FormCard> </FormCardGroup> <FormSheetFooter> {defaultValues ? ( <FormSheetFooterInfo> Last Updated {/* TODO: use updatedAt */} <time>{defaultValues.startDate.toLocaleString()}</time> </FormSheetFooterInfo> ) : null} <Button type="submit" form="maintenance-form"> Submit </Button> </FormSheetFooter> </FormSheetContent> </FormSheetWithDirtyProtection> );}