gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/services/components/tables/users/columns.tsx · v0.5.1
Source
1 3b7feef Mrdn 2y ago import { ColumnDef } from "@tanstack/react-table"
2 3b7feef Mrdn 2y ago import { DataTableColumnHeader } from "@marzneshin/components/data-table/column-header"
3 3b7feef Mrdn 2y ago import i18n from "@marzneshin/features/i18n"
4 857e289 Mrdn 2y ago import {
5 857e289 Mrdn 2y ago UserType,
6 d377c4c Dawsh 2y ago UserActivatedPill,
7 d377c4c Dawsh 2y ago UserEnabledPill,
8 d377c4c Dawsh 2y ago UserExpirationValue,
9 d377c4c Dawsh 2y ago userTrafficSortingFn,
10 857e289 Mrdn 2y ago } from "@marzneshin/features/users"
11 3b7feef Mrdn 2y ago import { CircularProgress } from "@nextui-org/progress";
12 3b7feef Mrdn 2y ago import { Badge } from "@marzneshin/components";
13 3b7feef Mrdn 2y ago
14 3b7feef Mrdn 2y ago export const columns: ColumnDef<UserType>[] = [
15 3b7feef Mrdn 2y ago {
16 3b7feef Mrdn 2y ago accessorKey: "username",
17 3b7feef Mrdn 2y ago header: ({ column }) => <DataTableColumnHeader title={i18n.t('username')} column={column} />,
18 3b7feef Mrdn 2y ago },
19 857e289 Mrdn 2y ago {
20 d377c4c Dawsh 2y ago accessorKey: "activated",
21 d377c4c Dawsh 2y ago header: ({ column }) => (
22 d377c4c Dawsh 2y ago <DataTableColumnHeader
23 d377c4c Dawsh 2y ago title={i18n.t("activated")}
24 d377c4c Dawsh 2y ago column={column}
25 d377c4c Dawsh 2y ago />
26 d377c4c Dawsh 2y ago ),
27 d377c4c Dawsh 2y ago cell: ({ row }) => <UserActivatedPill user={row.original} />,
28 d377c4c Dawsh 2y ago },
29 d377c4c Dawsh 2y ago {
30 d377c4c Dawsh 2y ago accessorKey: "enabled",
31 d377c4c Dawsh 2y ago header: ({ column }) => (
32 d377c4c Dawsh 2y ago <DataTableColumnHeader
33 d377c4c Dawsh 2y ago title={i18n.t("enabled")}
34 d377c4c Dawsh 2y ago column={column}
35 d377c4c Dawsh 2y ago />
36 d377c4c Dawsh 2y ago ),
37 d377c4c Dawsh 2y ago cell: ({ row }) => <UserEnabledPill user={row.original} />,
38 857e289 Mrdn 2y ago },
39 3b7feef Mrdn 2y ago {
40 3b7feef Mrdn 2y ago accessorKey: "used_traffic",
41 3b7feef Mrdn 2y ago header: ({ column }) => <DataTableColumnHeader title={i18n.t('page.users.used_traffic')} column={column} />,
42 3b7feef Mrdn 2y ago cell: ({ row }) => {
43 3b7feef Mrdn 2y ago if (row.original.data_limit) {
44 3b7feef Mrdn 2y ago return (
45 3b7feef Mrdn 2y ago <CircularProgress
46 3b7feef Mrdn 2y ago size="sm"
47 3b7feef Mrdn 2y ago value={row.original.used_traffic / row.original.data_limit * 100}
48 3b7feef Mrdn 2y ago />
49 3b7feef Mrdn 2y ago )
50 3b7feef Mrdn 2y ago } else {
51 3b7feef Mrdn 2y ago return <Badge>No Limit</Badge>
52 3b7feef Mrdn 2y ago }
53 3b7feef Mrdn 2y ago },
54 d377c4c Dawsh 2y ago sortingFn: (rowA, rowB) => userTrafficSortingFn(rowA.original, rowB.original)
55 3b7feef Mrdn 2y ago },
56 3b7feef Mrdn 2y ago {
57 d377c4c Dawsh 2y ago accessorKey: "expire",
58 d377c4c Dawsh 2y ago header: ({ column }) => (
59 d377c4c Dawsh 2y ago <DataTableColumnHeader
60 d377c4c Dawsh 2y ago title={i18n.t("page.users.expire_date")}
61 d377c4c Dawsh 2y ago column={column}
62 d377c4c Dawsh 2y ago />
63 d377c4c Dawsh 2y ago ),
64 d377c4c Dawsh 2y ago cell: ({ row }) => <UserExpirationValue user={row.original} />,
65 d377c4c Dawsh 2y ago },
66 3b7feef Mrdn 2y ago ];