Alune 组件
AlunePopconfirm
用于单对象、局部操作的确认,较大范围或不可撤销操作使用 AluneModal。
使用方式
触发元素必须是单个 ReactElement。safe / warning / danger 分别表达局部可恢复移除、提醒与危险操作。批量、较大范围或不可撤销操作使用 L2 弹窗。
import { AlunePopconfirm } from '@alune/ui'; 运行示例
运行与复制源码来自同一 TSX 文件。浮层、状态和主题独立于文档;所有回调只更新本地模拟数据。
正在加载示例…
查看运行源码
import { useState } from 'react';
import { AlunePopconfirm, Button, Space } from '@alune/ui';
export default function Example() {
const [result, setResult] = useState('');
return (
<div className="example">
<h2 className="example-title">安全、警告与危险操作</h2>
<Space wrap size="middle">
{(['safe', 'warning', 'danger'] as const).map((tone) => (
<AlunePopconfirm
key={tone}
title="移除此示例条目?"
description="此操作只更新本地示例状态。"
icon="folder"
tone={tone}
okText="移除"
onConfirm={() => setResult(`${tone}:已移除`)}
>
<Button danger={tone !== 'safe'}>{tone}</Button>
</AlunePopconfirm>
))}
</Space>
<p className="example-status" role="status">
{result}
</p>
</div>
);
}
API
AlunePopconfirm
触发元素必须是单个 ReactElement。safe / warning / danger 分别表达局部可恢复移除、提醒与危险操作。批量、较大范围或不可撤销操作使用 L2 弹窗。
AlunePopconfirmProps
| 属性 / 方法 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
title | ReactNode | — | 是 | 标题或主文案。 |
description | ReactNode | — | 否 | 辅助说明。 |
extra | ReactNode | — | 否 | 额外内容或操作。 |
icon | "warning" | "info" | "x" | "arrow-right" | "arrow-up-right" | "check" | "caret" | "trash" | "lock" | "key" | "server" | "folder" | "folder-open" | "branch" | "merge" | "pr" | "archive" | "cloud-up" | "cloud-down" | "globe" | "user" | "mail" | "terminal" | "laptop" | "search" | "bell" | "copy" | "eye" | "eye-off" | "link" | "sparkle" | "sliders" | "columns" | "download" | "moon" | "sun" | "wave" | "file" | "file-plus" | "refresh" | "plus" | "pencil" | "swap" | "shield" | "plug" | "tree" | "commit" | "chat" | "dots" | "clock" | "undo" | — | 是 | 图标内容或图标名。 |
tone | "warning" | "danger" | "safe" | 'warning' | 否 | 语义色调。 |
okText | string | — | 是 | 确认动作文字。 |
okDisabled | boolean | — | 否 | 锁定确认按钮。 |
hint | ReactNode | — | 否 | 确认提示。 |
onConfirm | () => unknown | — | 是 | 确认回调;Promise 交给 Ant Design 管理等待,拒绝时保留浮层。 |
onOpenChange | ((open: boolean) => void) | — | 否 | 开启状态变化回调,参数为 boolean。 |
placement | TooltipPlacement | — | 否 | 相对触发元素的浮层位置。 |
disabled | boolean | — | 否 | 禁用操作。 |
wide | boolean | — | 否 | 使用加宽确认浮层。 |
focus | "ok" | "extra" | 'ok' | 否 | 初始焦点:确认按钮或 extra 中第一个控件。 |
children | ReactElement<unknown, string | JSXElementConstructor<any>> | — | 是 | 渲染的子内容。 |
交互与使用限制
为每个操作提供可访问名称,为输入关联 label;使用语义化组件和清晰焦点。不要只靠颜色传达状态,禁用与等待时避免重复执行。
触发元素必须是单个 ReactElement。safe / warning / danger 分别表达局部可恢复移除、提醒与危险操作。批量、较大范围或不可撤销操作使用 L2 弹窗。
键盘、焦点、风险确认与通知策略的完整约定见交互规范。