← marzneshin
/
v0.3.1
/
dashboard/src/features/users/components/dialogs/settings/user-info/table.tsx
https://dev.kronoz.win/r/marzneshin.git
1import {
2 Card,
3 CardContent,
4 CardHeader,
5 CardTitle,
6 Table,
7 TableBody,
8 TableRowWithCell,
9 DateTableRow,
10} from "@marzneshin/components";
11import { FC } from "react";
12import {
13 type UserProp,
14 UserEnabledPill,
15 UserUsedTraffic,
16 UserActivatedPill,
17 UserDataLimitReachedPill,
18 UserExpiredPill,
19} from "@marzneshin/features/users";
20import { useTranslation } from "react-i18next";
21
22export const UserInfoTable: FC<UserProp> = ({ user: entity }) => {
23 const { t } = useTranslation();
24 const expireDate = entity.expire_date
25 ? new Date(entity.expire_date)
26 : null;
27
28 return (
29 <Card>
30 <CardHeader className="flex flex-row justify-between items-center w-full">
31 <CardTitle>{t("user_info")}</CardTitle>
32 </CardHeader>
33 <CardContent>
34 <Table>
35 <TableBody>
36 <TableRowWithCell label={t("username")} value={entity.username} />
37 <TableRowWithCell
38 label={t("activated")}
39 value={<UserActivatedPill user={entity} />}
40 />
41 <TableRowWithCell
42 label={t("enabled")}
43 value={<UserEnabledPill user={entity} />}
44 />
45 <TableRowWithCell
46 label={t("page.users.data_limit_reached")}
47 value={<UserDataLimitReachedPill user={entity} />}
48 />
49 <TableRowWithCell
50 label={t("expired")}
51 value={<UserExpiredPill user={entity} />}
52 />
53 {{
54 fixed_date: (
55 <DateTableRow
56 label={t("page.users.expire_date")}
57 date={expireDate}
58 />
59 ),
60 start_on_first_use: (
61 <>
62 <TableRowWithCell
63 label={t("page.users.usage_duration")}
64 value={(entity.usage_duration ? entity.usage_duration : 0) / 86400}
65 />
66 <DateTableRow
67 label={t("page.users.activation_deadline")}
68 date={entity.activation_deadline}
69 />
70 </>
71 ),
72 never: (
73 <TableRowWithCell
74 label={t("page.users.expire_method")}
75 value={t('never')}
76 />
77 )
78 }[entity.expire_strategy]}
79
80 <TableRowWithCell
81 label={t("page.users.used_traffic")}
82 value={<UserUsedTraffic user={entity} />}
83 />
84 <DateTableRow
85 label={t("page.users.online_at")}
86 date={entity.online_at}
87 />
88 <TableRowWithCell label={t("note")} value={entity.note} />
89 </TableBody>
90 </Table>
91 </CardContent>
92 </Card>
93 );
94};