feat(channel-card): add confirmation dialog for schedule regeneration

This commit is contained in:
2026-03-16 01:50:05 +01:00
parent 40f698acb7
commit 4df6522952
2 changed files with 93 additions and 1 deletions

View File

@@ -0,0 +1,67 @@
"use client";
import React from "react";
import {
AlertDialog,
AlertDialogContent,
AlertDialogHeader,
AlertDialogTitle,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogCancel,
AlertDialogAction,
} from "@/components/ui/alert-dialog";
interface ConfirmDialogProps {
open: boolean;
onOpenChange: (open: boolean) => void;
title: string;
description: React.ReactNode;
confirmLabel?: string;
cancelLabel?: string;
onConfirm: () => void;
isPending?: boolean;
destructive?: boolean;
}
export function ConfirmDialog({
open,
onOpenChange,
title,
description,
confirmLabel = "Confirm",
cancelLabel = "Cancel",
onConfirm,
isPending,
destructive,
}: ConfirmDialogProps) {
return (
<AlertDialog open={open} onOpenChange={onOpenChange}>
<AlertDialogContent className="bg-zinc-900 border-zinc-800 text-zinc-100">
<AlertDialogHeader>
<AlertDialogTitle>{title}</AlertDialogTitle>
<AlertDialogDescription className="text-zinc-400">
{description}
</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel
disabled={isPending}
className="border-zinc-700 bg-transparent text-zinc-300 hover:bg-zinc-800 hover:text-zinc-100"
>
{cancelLabel}
</AlertDialogCancel>
<AlertDialogAction
onClick={onConfirm}
disabled={isPending}
className={
destructive ? "bg-red-600 text-white hover:bg-red-700" : undefined
}
>
{confirmLabel}
</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
);
}