YuhuanStudioYunUIDocs
Overlays

Confirm Modal

Variant-colored confirmation dialog with a loading state for destructive actions.

A focused confirmation dialog for destructive or irreversible actions. It shows a variant-coloured icon, a title, message, and Cancel / Confirm buttons, and supports an isLoading state that disables the buttons and shows a spinner while the action runs. Like Modal, it's controlled via isOpen + onClose, plus an onConfirm callback. Convenience presets DeleteConfirmModal and RegenerateConfirmModal are also exported.

Import

import { ConfirmModal } from "@yuhuanowo/yunui";

Basic

Keep isOpen in state, run your action in onConfirm, and close via onClose. The variant (danger / warning / info / success) sets the icon and confirm-button colour.

Confirm an action

"use client";

import { useState } from "react";
import { ConfirmModal, Button } from "@yuhuanowo/yunui";

export function ConfirmModalDemo() {
  const [open, setOpen] = useState(false);
  return (
    <>
      <Button variant="red" onClick={() => setOpen(true)}>Delete project</Button>
      <ConfirmModal
        isOpen={open}
        onClose={() => setOpen(false)}
        onConfirm={() => setOpen(false)}
        variant="danger"
        title="Delete project?"
        message="This permanently removes the project and all of its data. This action cannot be undone."
        confirmText="Delete"
      />
    </>
  );
}

Props

PropTypeDefaultDescription
cancelTextstringText for cancel button
classNamestringAdditional CSS classes
confirmTextstringText for confirm button
iconReactNodeCustom icon (overrides variant default)
isLoadingbooleanfalseWhether action is in progress
isOpen*booleanWhether the modal is open
message*ReactNodeMain message content
onClose*() => voidCallback when modal should close
onConfirm*() => voidCalled when user confirms
size"sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "full"Modal size
subtitlestringOptional subtitle displayed below title
title*stringModal title (required for accessibility)
variant"danger" | "warning" | "info" | "success"warningVariant affects icon and button colors

On this page