mirror of
https://github.com/nextui-org/nextui.git
synced 2025-12-08 19:26:11 +00:00
80 lines
1.5 KiB
TypeScript
80 lines
1.5 KiB
TypeScript
import type {Selection} from "@heroui/react";
|
|
|
|
import React from "react";
|
|
import {
|
|
Table,
|
|
TableHeader,
|
|
TableColumn,
|
|
TableBody,
|
|
TableRow,
|
|
TableCell,
|
|
getKeyValue,
|
|
} from "@heroui/react";
|
|
|
|
const rows = [
|
|
{
|
|
key: "1",
|
|
name: "Tony Reichert",
|
|
role: "CEO",
|
|
status: "Active",
|
|
},
|
|
{
|
|
key: "2",
|
|
name: "Zoey Lang",
|
|
role: "Technical Lead",
|
|
status: "Paused",
|
|
},
|
|
{
|
|
key: "3",
|
|
name: "Jane Fisher",
|
|
role: "Senior Developer",
|
|
status: "Active",
|
|
},
|
|
{
|
|
key: "4",
|
|
name: "William Howard",
|
|
role: "Community Manager",
|
|
status: "Vacation",
|
|
},
|
|
];
|
|
|
|
const columns = [
|
|
{
|
|
key: "name",
|
|
label: "NAME",
|
|
},
|
|
{
|
|
key: "role",
|
|
label: "ROLE",
|
|
},
|
|
{
|
|
key: "status",
|
|
label: "STATUS",
|
|
},
|
|
];
|
|
|
|
export default function App() {
|
|
const [selectedKeys, setSelectedKeys] = React.useState<Selection>(new Set(["2"]));
|
|
|
|
return (
|
|
<Table
|
|
aria-label="Controlled table example with dynamic content"
|
|
disabledKeys={["3", "4"]}
|
|
selectedKeys={selectedKeys}
|
|
selectionMode="multiple"
|
|
onSelectionChange={setSelectedKeys}
|
|
>
|
|
<TableHeader columns={columns}>
|
|
{(column) => <TableColumn key={column.key}>{column.label}</TableColumn>}
|
|
</TableHeader>
|
|
<TableBody items={rows}>
|
|
{(item) => (
|
|
<TableRow key={item.key}>
|
|
{(columnKey) => <TableCell>{getKeyValue(item, columnKey)}</TableCell>}
|
|
</TableRow>
|
|
)}
|
|
</TableBody>
|
|
</Table>
|
|
);
|
|
}
|