https://dev.kronoz.win/r/marzneshin.git
1import { FC } from "react";
2import {
3 columns as columnsFn,
4 fetchNodes,
5 NodeType
6} from '@marzneshin/features/nodes';
7import { EntityTable } from "@marzneshin/features/entity-table";
8import { useNavigate } from "@tanstack/react-router";
9
10export const NodesTable: FC = () => {
11 const navigate = useNavigate({ from: "/nodes" });
12
13 const onOpen = (entity: NodeType) => {
14 navigate({
15 to: "/nodes/$nodeId",
16 params: { nodeId: String(entity.id) },
17 })
18 }
19
20 const onEdit = (entity: NodeType) => {
21 navigate({
22 to: "/nodes/$nodeId/edit",
23 params: { nodeId: String(entity.id) },
24 })
25 }
26
27 const onDelete = (entity: NodeType) => {
28 navigate({
29 to: "/nodes/$nodeId/delete",
30 params: { nodeId: String(entity.id) },
31 })
32 }
33
34 const columns = columnsFn({ onEdit, onDelete, onOpen });
35
36 return (
37 <EntityTable
38 fetchEntity={fetchNodes}
39 columns={columns}
40 primaryFilter="name"
41 entityKey="nodes"
42 onCreate={() => navigate({ to: "/nodes/create" })}
43 onOpen={onOpen}
44 />
45 )
46}