Alune 组件

useAluneConfirm

通过 Promise<boolean> 获取确认结果,由共享 Provider 承载弹窗。

使用方式

返回 (options: AluneConfirmOptions) => Promise<boolean>。确认成功为 true,取消为 false;异步 onOk 拒绝时继续停留。需要位于共享 Provider 内。

import { AluneConfirmProvider, useAluneConfirm } from '@alune/ui';

接入要求见快速开始,选择依据见 交互与无障碍规范。

运行示例

运行与复制源码来自同一 TSX 文件。浮层、状态和主题独立于文档;所有回调只更新本地模拟数据。

真实示例 TSX 独立预览 ↗
查看运行源码
源码文件
import { useState } from 'react';
import { Button, useAluneConfirm, DialogNote } from '@alune/ui';

export default function Example() {
  const confirm = useAluneConfirm();
  const [result, setResult] = useState('');
  return (
    <div className="example example--narrow">
      <h2 className="example-title">确认后更新本地状态</h2>
      <div className="example-row">
        <Button
          onClick={async () => {
            const accepted = await confirm({
              title: '继续本地示例?',
              level: 1,
              content: <DialogNote title="确认范围">只更新此页面状态。</DialogNote>,
            });
            setResult(accepted ? '已确认' : '已取消');
          }}
        >
          请求确认
        </Button>
      </div>
      <p className="example-status" role="status">
        {result}
      </p>
    </div>
  );
}

API

AluneConfirmProvider

AluneUIProvider 已组合这个 Provider。只有自行组合底层上下文的宿主才需要单独使用,避免重复确认承载。

查看 AluneConfirmProvider 实现 ↗

AluneConfirmProviderProps

属性 / 方法 类型 默认值 必填 说明
children ReactNode — 是 渲染的子内容。

查看 AluneConfirmProviderProps 实现 ↗

useAluneConfirm

返回 (options: AluneConfirmOptions) => Promise<boolean>。确认成功为 true,取消为 false;异步 onOk 拒绝时继续停留。需要位于共享 Provider 内。

查看 useAluneConfirm 实现 ↗

AluneConfirmOptions

属性 / 方法 类型 默认值 必填 说明
content ReactNode — 否 富内容。
onOk (() => unknown) — 否 返回 Promise 时等待;成功后确认结果为 true,拒绝时继续停留。
onCancel (() => void) — 否 取消回调,宿主更新受控状态。
body "default" | "flush" | "tight" | "scroll" — 否 正文内边距或滚动方式。
footer ReactNode — 否 替换操作行,null 移除整个页脚。
title ReactNode — 是 标题或主文案。
danger boolean — 否 危险操作样式。
level DialogLevel — 否 风险等级:0 普通表单,1 提醒,2 不可撤销。
tone DialogTone — 否 语义色调。
size number | DialogSize — 否 预设尺寸或数字宽度。
glyph ReactNode — 否 标题图标,false 隐藏。
eyebrow DialogEyebrow — 否 标题上方的上下文。
levelLabel ReactNode — 否 风险标签,false 隐藏。
description ReactNode — 否 辅助说明。
hints ReactNode — 否 页脚提示,false 隐藏。
hintVerb ReactNode — 否 默认 Enter 提示中的操作动词。
okIcon false | "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" — 否 确认按钮图标,false 隐藏。
okDisabled boolean — 否 锁定确认按钮。
busyText ReactNode — 否 等待状态文案。
hideCancel boolean — 否 隐藏取消按钮。
extra ReactNode — 否 额外内容或操作。
acknowledge ReactNode — 否 必须勾选的确认说明;不传时没有此门槛。
typedConfirm { value: string; label?: ReactNode; placeholder?: string; icon?: DialogIconName; mismatch?: ReactNode; match?: ReactNode; } — 否 必须输入的目标文字与匹配说明。
initialFocus "ok" | "cancel" | "field" — 否 初始焦点目标;默认由风险等级决定。

查看 AluneConfirmOptions 实现 ↗

AluneConfirmApi

属性 / 方法 类型 默认值 必填 说明
confirm (options: AluneConfirmOptions) => Promise<boolean> — 是 接收 AluneConfirmOptions,返回 Promise<boolean>,确认 true,取消 false。

查看 AluneConfirmApi 实现 ↗

交互与使用限制

为每个操作提供可访问名称,为输入关联 label;使用语义化组件和清晰焦点。不要只靠颜色传达状态,禁用与等待时避免重复执行。

返回 (options: AluneConfirmOptions) => Promise<boolean>。确认成功为 true,取消为 false;异步 onOk 拒绝时继续停留。需要位于共享 Provider 内。

键盘、焦点、风险确认与通知策略的完整约定见交互规范。