Guest User

Untitled

a guest
Nov 20th, 2024
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import {
  2.     Table,
  3.     TableBody,
  4.     TableCell,
  5.     TableHead,
  6.     TableHeader,
  7.     TableRow,
  8. } from "@/components/ui/table"
  9.  
  10. import {
  11.     Card,
  12.     CardContent,
  13.     CardHeader,
  14.     CardTitle,
  15. } from "@/components/ui/card"
  16. import {Order} from "@/models/Order.ts";
  17. import {createColumnHelper, flexRender, getCoreRowModel, useReactTable} from "@tanstack/react-table";
  18. import React from "react";
  19.  
  20. const defaultData: Order[] = [
  21.     {
  22.         id: "1",
  23.         status: "Оплачен",
  24.         cost: 1990
  25.     },
  26.     {
  27.         id: "2",
  28.         status: "В работе",
  29.         cost: 975
  30.     },
  31.     {
  32.         id: "3",
  33.         status: "Отменен",
  34.         cost: 721
  35.     },
  36. ]
  37.  
  38. const columnHelper = createColumnHelper<Order>()
  39.  
  40. const columns = [
  41.     columnHelper.accessor(row => row.id, {
  42.         id: 'id',
  43.         header: () => <span>Номер заказа</span>,
  44.         cell: info => info.renderValue(),
  45.     }),
  46.     columnHelper.accessor(row => row.status, {
  47.         id: 'status',
  48.         header: () => <span>Статус</span>,
  49.         cell: info => info.renderValue(),
  50.     }),
  51.     columnHelper.accessor(row => row.cost, {
  52.         id: 'cost',
  53.         header: () => <span>Стоимость</span>,
  54.         cell: info => info.renderValue(),
  55.         meta: {
  56.             className: 'text-right',
  57.         },
  58.     }),
  59. ]
  60.  
  61. export default function OrdersTable() {
  62.     const [data, _setData] = React.useState<Order[]>(() => [...defaultData]);
  63.     const table = useReactTable({
  64.         data,
  65.         columns,
  66.         getCoreRowModel: getCoreRowModel(),
  67.     })
  68.  
  69.     return (
  70.         <Card>
  71.             <CardHeader>
  72.                 <CardTitle>Заказы</CardTitle>
  73.             </CardHeader>
  74.             <CardContent>
  75.                 <Table>
  76.                     <TableHeader>
  77.                         {table.getHeaderGroups().map((headerGroup) => (
  78.                             <TableRow key={headerGroup.id}>
  79.                                 {headerGroup.headers.map((header) => (
  80.                                     <TableHead key={header.id}>
  81.                                         {flexRender(
  82.                                             header.column.columnDef.header,
  83.                                             header.getContext()
  84.                                         )}
  85.                                     </TableHead>
  86.                                 ))}
  87.                             </TableRow>
  88.                         ))}
  89.                     </TableHeader>
  90.                     <TableBody>
  91.                         {table.getRowModel().rows.map(row => (
  92.                             <TableRow key={row.id}>
  93.                                 {row.getVisibleCells().map((cell) => (
  94.                                     <TableCell key={cell.id} className={cell.column.columnDef.meta?.className}>
  95.                                         {flexRender(cell.column.columnDef.cell, cell.getContext())}
  96.                                     </TableCell>
  97.                                 ))}
  98.                             </TableRow>
  99.                         ))}
  100.                     </TableBody>
  101.                 </Table>
  102.             </CardContent>
  103.         </Card>
  104.     )
  105. }
Advertisement
Add Comment
Please, Sign In to add comment