koperasi/services/frontend/app/components/modal/alert-modal.tsx

45 lines
1.0 KiB
TypeScript
Raw Normal View History

2025-08-08 07:12:40 +00:00
import { useEffect, useState } from "react";
import { Button } from "~/components/ui/button";
import { Modal } from "../ui/modal";
interface AlertModalProps {
title: string;
description: string;
isOpen: boolean;
onClose: () => void;
onConfirm: () => void;
loading: boolean;
}
export function AlertModal({
title = "Apakah anda yakin?",
description = "Tindakan ini tidak dapat dibatalkan.",
isOpen,
onClose,
onConfirm,
loading,
}: AlertModalProps) {
const [isMounted, setIsMounted] = useState(false);
useEffect(() => {
setIsMounted(true);
}, []);
if (!isMounted) {
return null;
}
return (
<Modal description={description} isOpen={isOpen} onClose={onClose} title={title}>
<div className="flex w-full items-center justify-end space-x-2 pt-6">
<Button disabled={loading} onClick={onClose} variant="destructive">
Batal
</Button>
<Button disabled={loading} onClick={onConfirm}>
Lanjutkan
</Button>
</div>
</Modal>
);
}