Alert Dialog

确认对话框是内置了「取消 / 确认」按钮对的 Dialog,用于不可逆操作前的二次确认。下方预览由 pingo 引擎实时渲染,并跟随站点主题切换明暗。

用法

import { createElement } from "@dopejs/pingo";
import { AlertDialog } from "@dopejs/pingo-ui";

root.render(
  createElement(AlertDialog, {
    open,
    onOpenChange: (next) => setOpen(next),
    title: "确认退出?",
    description: "未保存的修改将会丢失。",
    onCancel: () => {},
    onAction: () => quit(),
    children: null,
  }),
);

与 Dialog 一样,浮层填满它自己的父容器,请挂载在靠近根节点的位置。注意 children 继承自 DialogProps 仍为必填,但会被组件内置的标题/描述/按钮结构覆盖,传 null 即可。点击取消或确认按钮都会先触发对应回调,再通过 onOpenChange(false) 请求关闭;遮罩点击同样会关闭。

示例

破坏性操作

destructive 会把确认按钮渲染为危险色。

Props

继承 DialogPropsopenonOpenChangechildrenclassName),另有:

Prop 类型 默认值 说明
title string 标题(必填)
description string 补充说明
cancelLabel string "取消" 取消按钮文案
actionLabel string "确定" 确认按钮文案
onCancel () => void 取消回调(随后关闭)
onAction () => void 确认回调(随后关闭)
destructive boolean false 确认按钮使用危险色

无障碍

具备 dialog 语义;取消与确认按钮都注册在 Tab 循环中,键盘用户不会被困在对话框里。

最后更新: