en-US

Automatically omitted by the dEllipsis setting, supports global configuration.

zh-CN

通过 dEllipsis 设置自动省略,支持全局配置。

import { useImmer } from '@react-devui/hooks';
import { DTable, DButton, DSeparator } from '@react-devui/ui';

const origin = [1, 3, 2].map((n) => ({
  name: `Name ${6 - n}`,
  age: `2${n}`,
  address: `Room 100${n}, Building 2, Fandou Garden, Fandou Street`,
}));
export default function Demo() {
  const [sort, setSort] = useImmer({});

  const sortFn = (() => {
    if (sort.name) {
      return (a, b) => a.name.localeCompare(b.name) * (sort.name === 'ascend' ? 1 : -1);
    }
  })();
  const list = sortFn ? [...origin].sort(sortFn) : origin;

  return (
    <DTable dEllipsis>
      <table>
        <thead>
          <tr>
            <DTable.Th
              title="Long Long Long Long Long Long Name"
              dWidth={120}
              dSort={{
                options: ['descend', null],
                active: sort.name ?? null,
                onSort: (order) => setSort({ name: order }),
              }}
            >
              Long Long Long Long Long Long Name
            </DTable.Th>
            <DTable.Th>Age</DTable.Th>
            <DTable.Th dWidth={200}>Address</DTable.Th>
            <DTable.Th>Action</DTable.Th>
          </tr>
        </thead>
        <tbody>
          {list.map((data) => (
            <tr key={data.name}>
              <DTable.Td dWidth={120}>{data.name}</DTable.Td>
              <DTable.Td>{data.age}</DTable.Td>
              <DTable.Td title={data.address} dWidth={200}>
                {data.address}
              </DTable.Td>
              <DTable.Td dNowrap>
                <DButton dType="link">Edit</DButton>
                <DSeparator dVertical></DSeparator>
                <DButton dType="link">Delete</DButton>
              </DTable.Td>
            </tr>
          ))}
        </tbody>
      </table>
    </DTable>
  );
}