Files
UI/packages/skin/ui/src/tableEmpty.ts
T
2026-10-26 13:54:06 +08:00

19 lines
817 B
TypeScript

import { h } from '@ui-arch/frame';
import type { Signal } from '@ui-arch/frame';
import { button } from './button.js';
/*** 表格空状态行:有筛选词说明是筛掉的并给一键清除,没有筛选词就是真没数据;两种语义不该混成一句话 ***/
export function emptyRow(colspan: number, keyword: Signal<string>, onClear: () => void): HTMLElement {
const q = keyword().trim(); // 读信号:筛选词变化时整表重绘会带上新文案
return h(
'tr',
{ class: 'ua-empty-row' },
h(
'td',
{ colspan },
h('span', { class: 'ua-empty-tip' }, q ? `没有符合「${q}」的行` : '暂无数据'),
q ? button({ label: '清除筛选', variant: 'ghost', onClick: () => { keyword(''); onClear(); } }) : null, // 清空信号与内核筛选
),
);
}