import React from 'react'; import './List.css'; /* 列表(移动端)— 规格 §24 一行 = 前缀位 + 主区 + 后缀位;可点行是原生 button(整行热区、键盘可达), 纯展示行用 div + role="listitem"(原生语义优先于 listitem)。 本端不接管滚动、不做虚拟列表(规格 §24.5);inline 控件要自己阻止冒泡,避免一次点击触发两个动作。 */ export default function List({ items = [], size = 'default', border = true, divider = 'inset', header = '', footer = '', emptyText = '', onSelect, children = null, empty = null, }) { const cls = 'kole-m-list' + (size === 'compact' ? ' kole-m-list--compact' : '') + (border ? ' kole-m-list--border' : '') + ` kole-m-list--${divider}`; const suffixOf = (it) => ( <> {it.value ? {it.value} : null} {it.arrow ? ( ) : null} > ); const bodyOf = (it) => ( <> {it.prefix ? {it.prefix} : null} {it.title} {it.desc ? {it.desc} : null} > ); if (!items.length) { return (
{header}
: null} {empty ||{emptyText || '暂无数据'}
} {footer ?{footer}
: null}{header}
: null} {items.map((it, i) => it && it.static ? ( /* 纯展示行:div + role="listitem",不绑点击(规格 §24.6) */{footer}
: null}