# 状态反馈

## toast(text)

在应用文档中显示轻提示，约 2.4 秒后自动移除。返回提示节点，不需要手动 append。它不是操作系统通知。

## dialog(options)

立即显示确认弹层并返回遮罩节点。返回值不是 Promise；通过 `onConfirm` 和 `onCancel` 处理结果。

| 参数 | 类型 | 默认值或说明 |
| --- | --- | --- |
| `title` | string | 可选标题。 |
| `text` | string | 可选正文。 |
| `confirm` | string | 默认「确定」。 |
| `cancel` | string | 默认「取消」。 |
| `onConfirm` | function | 点击确定，先移除弹层，再调用回调。 |
| `onCancel` | function | 点击取消，先移除弹层，再调用回调。 |

异步回调需要自己处理错误。当前弹层没有完整的键盘焦点管理或 Escape 关闭行为，需要这些交互时由应用明确处理。

## loading(text?)

返回带动画的加载节点，默认文字为「加载中…」。它不会自行消失，加载完成后通过 `replaceChildren` 替换。

```js preview height=340
export default function render(root, platform) {
  const ui = platform.ui;
  root.replaceChildren(ui.page([ui.card(ui.stack([
    ui.title("操作反馈"),
    ui.button("显示提示", () => ui.toast("内容已经保存")),
    ui.button("打开确认弹层", () => ui.dialog({
      title: "删除这条预览记录？",
      text: "这是演示操作，不会影响你的数据。",
      confirm: "删除",
      onConfirm: () => ui.toast("已经确认删除"),
      onCancel: () => ui.toast("已经取消"),
    }), "secondary"),
    ui.loading("正在等待数据…"),
  ]))]));
}
```
