import { nextZIndex, toast, hasWindow } from '@talex-touch/tuffex/utils'
统一分配浮层层级,避免各组件各写各的 z-index 造成层叠错乱。
| 导出 | 签名 | 何时用 |
|---|
nextZIndex() | () => number | 新建浮层时取下一个递增层级 |
getZIndex() | () => number | 只读当前最高层级,不递增 |
refreshZIndex(seed?, reason?) | (seed?: number, reason?: string) => number | 需要以某个基准重新计数时 |
resetZIndex(seed?, reason?) | (seed?: number, reason?: string) => number | 卸载 / 测试后重置到种子值 |
configureZIndex(options) | (options) => void | 全局配置基准种子与覆盖值 |
onZIndexEvent(listener) | (listener) => () => void | 订阅层级变化,返回取消订阅函数 |
SSR 安全地检测浏览器 API 是否可用,避免直接访问 window / document / navigator 报错。
| 导出 | 签名 | 何时用 |
|---|
hasWindow() | () => boolean | 访问 window 前判断 |
hasDocument() | () => boolean | 访问 document 前判断 |
hasNavigator() | () => boolean | 访问 navigator(如振动、剪贴板)前判断 |
封装 navigator.vibrate,提供语义化的震动模式。
| 导出 | 签名 | 何时用 |
|---|
vibrate | { light() … error(), stop, isSupported } | 直接触发预设震动,如 vibrate.success() |
useVibrate(type, options?) | (type: VibrateType, options?) => void | 按语义触发一次自定义配置的震动 |
stopVibrate() | () => void | 打断进行中的震动 |
isVibrateSupported() | () => boolean | 能力检测 |
全局 toast 队列,无需在每个页面手动挂宿主(渲染仍需 TxToastHost)。
| 导出 | 签名 | 何时用 |
|---|
toast(options) | (options) => string | 弹出提示,返回可用于关闭的 id |
dismissToast(id) | (id: string) => void | 关闭指定提示 |
clearToasts() | () => void | 清空所有提示 |
按优先级排队、并带生命周期回调地串行管理全局对话框。
| 导出 | 签名 | 何时用 |
|---|
getDialogManager() | () => DialogManager | 获取全局单例以排队 / 打开对话框 |
| 导出 | 签名 | 何时用 |
|---|
useFlip(targetRef, opts?) | (ref, opts?) => UseFlipReturn | 对元素做 FLIP 过渡(TxFlipOverlay 底层) |
useAutoResize(targetRef, opts?) | (ref, opts?) => UseAutoResizeReturn | 尺寸自适应测量与过渡(TxAutoSizer 底层) |
| 导出 | 签名 | 何时用 |
|---|
withInstall(component) | <T>(component: T) => T & { install } | 给组件挂 install,支持 app.use() 全局注册 |
- 桶文件:
packages/tuffex/packages/components/src/utils/index.ts 再导出 packages/tuffex/packages/utils/*。 - 子路径入口:
@talex-touch/tuffex/utils;根入口 @talex-touch/tuffex 亦并入这些导出。