mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 14:08:11 +00:00
78 lines
2.1 KiB
TypeScript
78 lines
2.1 KiB
TypeScript
import { useState, type ReactNode } from "react";
|
|
|
|
import {
|
|
Dialog,
|
|
DialogClose,
|
|
DialogContent,
|
|
DialogDescription,
|
|
DialogFooter,
|
|
DialogHeader,
|
|
DialogTitle,
|
|
DialogTrigger,
|
|
} from "@/components/ui/dialog";
|
|
|
|
import { Button } from "@/components/ui/button";
|
|
|
|
export interface DeleteDropdownSettingDialogProps {
|
|
settingLabel: string;
|
|
settingCode: string;
|
|
onConfirm?: () => void;
|
|
children?: ReactNode;
|
|
open?: boolean;
|
|
onOpenChange?: (open: boolean) => void;
|
|
}
|
|
|
|
export default function DeleteDropdownSettingDialog({
|
|
settingLabel,
|
|
settingCode,
|
|
onConfirm,
|
|
children,
|
|
open: openProp,
|
|
onOpenChange,
|
|
}: DeleteDropdownSettingDialogProps) {
|
|
const isControlled = openProp !== undefined;
|
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
const open = isControlled ? openProp : internalOpen;
|
|
const setOpen = (next: boolean) => {
|
|
if (!isControlled) setInternalOpen(next);
|
|
onOpenChange?.(next);
|
|
};
|
|
|
|
return (
|
|
<Dialog open={open} onOpenChange={setOpen}>
|
|
{children ? <DialogTrigger asChild>{children}</DialogTrigger> : null}
|
|
|
|
<DialogContent className="sm:max-w-md rounded-3xl">
|
|
<DialogHeader>
|
|
<DialogTitle className="text-xl font-bold">
|
|
Delete dropdown setting?
|
|
</DialogTitle>
|
|
|
|
<DialogDescription>
|
|
This will remove{" "}
|
|
<span className="font-semibold text-slate-900">{settingLabel}</span>{" "}
|
|
(<span className="font-mono text-xs">{settingCode}</span>) and all
|
|
of its options. Forms referencing this code will fall back to
|
|
empty options.
|
|
</DialogDescription>
|
|
</DialogHeader>
|
|
|
|
<DialogFooter className="mt-2">
|
|
<DialogClose asChild>
|
|
<Button variant="outline">Cancel</Button>
|
|
</DialogClose>
|
|
|
|
<DialogClose asChild>
|
|
<Button
|
|
onClick={onConfirm}
|
|
className="bg-red-600 text-white hover:bg-red-700"
|
|
>
|
|
Delete
|
|
</Button>
|
|
</DialogClose>
|
|
</DialogFooter>
|
|
</DialogContent>
|
|
</Dialog>
|
|
);
|
|
}
|