| 1 |
3b7feef |
Mrdn |
2y ago |
import { ColumnDef } from "@tanstack/react-table" |
| 2 |
65bbe9d |
Mardin |
2y ago |
import { DataTableColumnHeader } from "@marzneshin/features/entity-table" |
| 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 |
]; |