Alune 组件
StatusButton
用于紧凑状态区域的可聚焦操作。
使用方式
状态按钮由宿主传入状态和回调,适合在不同应用和文档中复用。先完成快速开始中的 Provider 与样式配置。
import { StatusButton } from '@alune/ui'; 运行示例
运行与复制源码来自同一 TSX 文件。浮层、状态和主题独立于文档;所有回调只更新本地模拟数据。
正在加载示例…
查看运行源码
import { useState } from 'react';
import { ToolbarButton, StatusButton, CommandButton, DialogIcon, Space } from '@alune/ui';
export default function Example() {
const [active, setActive] = useState('files');
const [count, setCount] = useState(0);
return (
<div className="example">
<section className="example-group">
<h2 className="example-title">视图切换</h2>
<Space wrap size="middle">
<ToolbarButton
label="文件"
active={active === 'files'}
onClick={() => setActive('files')}
>
<DialogIcon name="folder" />
文件
</ToolbarButton>
<ToolbarButton
label="历史"
active={active === 'history'}
onClick={() => setActive('history')}
>
<DialogIcon name="clock" />
历史
</ToolbarButton>
</Space>
</section>
<section className="example-group">
<h2 className="example-title">操作与连接状态</h2>
<Space wrap size="middle">
<ToolbarButton
label="拉取"
variant="action"
text="拉取"
count={2}
countTone="behind"
onClick={() => setCount((n) => n + 1)}
>
<DialogIcon name="cloud-down" />
</ToolbarButton>
<ToolbarButton
label="运行示例"
variant="primary"
text="运行"
count={count || undefined}
onClick={() => setCount((n) => n + 1)}
/>
<ToolbarButton label="不可用操作" variant="action" disabled>
不可用
</ToolbarButton>
<StatusButton label="状态" active>
已连接
</StatusButton>
<CommandButton label="刷新示例" onClick={() => setCount((n) => n + 1)}>
<DialogIcon name="refresh" />
</CommandButton>
</Space>
</section>
<p className="example-status" role="status">
当前:{active} · 操作次数:{count}
</p>
</div>
);
}
API
StatusButton
StatusButton 是通用组合成员,具体属性见关联 Props 表,运行效果见上方示例。
StatusButtonProps
| 属性 / 方法 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
label | string | — | 是 | 可访问名称或展示文案。 |
tooltip | string | label | 否 | 悬停或聚焦时的说明。 |
active | boolean | false | 否 | 当前激活状态。 |
同时支持原生 button 属性与事件,例如 disabled、onClick、children、aria-*。 原生按钮属性 ↗
交互与使用限制
为每个操作提供可访问名称,为输入关联 label;使用语义化组件和清晰焦点。不要只靠颜色传达状态,禁用与等待时避免重复执行。
宿主负责状态、业务操作、错误处理与真实内容。组件不读取业务 store、路由或 Electron。示例中的反馈和等待均为本地模拟。
键盘、焦点、风险确认与通知策略的完整约定见交互规范。