gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/admins/components/dialogs/settings/admin-info/table.tsx · v0.6.5
Source
1 4708fcb Dawsh 2y ago import {
2 b41894b Mardin 1y ago Button,
3 4708fcb Dawsh 2y ago Card,
4 4708fcb Dawsh 2y ago CardContent,
5 4708fcb Dawsh 2y ago CardHeader,
6 4708fcb Dawsh 2y ago CardTitle,
7 4708fcb Dawsh 2y ago Table,
8 4708fcb Dawsh 2y ago TableBody,
9 4708fcb Dawsh 2y ago TableRowWithCell,
10 7389ad0 Mardin 2y ago } from "@marzneshin/common/components";
11 b41894b Mardin 1y ago import { FC, useCallback } from "react";
12 4708fcb Dawsh 2y ago import {
13 4708fcb Dawsh 2y ago type AdminProp,
14 4708fcb Dawsh 2y ago AdminEnabledPill,
15 b41894b Mardin 1y ago AdminPermissionPill,
16 b41894b Mardin 1y ago useAdminUsersStatusDisable,
17 b41894b Mardin 1y ago useAdminUsersStatusEnable
18 7738ec1 Mardin 2y ago } from "@marzneshin/modules/admins";
19 4708fcb Dawsh 2y ago import { useTranslation } from "react-i18next";
20 b41894b Mardin 1y ago import { LoaderIcon, UserCheck, UserX } from "lucide-react";
21 2f706e7 Mardin 2y ago import { format } from '@chbphone55/pretty-bytes';
22 4708fcb Dawsh 2y ago
23 4708fcb Dawsh 2y ago export const AdminInfoTable: FC<AdminProp> = ({ admin: entity }) => {
24 4708fcb Dawsh 2y ago const { t } = useTranslation();
25 2f706e7 Mardin 2y ago const usersDataUsage = format(entity.users_data_usage);
26 b41894b Mardin 1y ago const { mutate: adminStatusEnable, isPending: enablePending } = useAdminUsersStatusEnable()
27 b41894b Mardin 1y ago const { mutate: adminStatusDisable, isPending: disablePending } = useAdminUsersStatusDisable()
28 b41894b Mardin 1y ago
29 b41894b Mardin 1y ago const handleAdmingStatusEnable = useCallback(() => {
30 b41894b Mardin 1y ago adminStatusEnable({ admin: entity })
31 b41894b Mardin 1y ago }, [entity, adminStatusEnable]);
32 b41894b Mardin 1y ago
33 b41894b Mardin 1y ago const handleAdmingStatusDisable = useCallback(() => {
34 b41894b Mardin 1y ago adminStatusDisable({ admin: entity })
35 b41894b Mardin 1y ago }, [entity, adminStatusDisable]);
36 4708fcb Dawsh 2y ago
37 4708fcb Dawsh 2y ago return (
38 4708fcb Dawsh 2y ago <Card>
39 4708fcb Dawsh 2y ago <CardHeader className="flex flex-row justify-between items-center w-full">
40 4708fcb Dawsh 2y ago <CardTitle>{t("admin_info")}</CardTitle>
41 b41894b Mardin 1y ago <div className="hstack justify-center items-center gap-2">
42 b41894b Mardin 1y ago <Button
43 b41894b Mardin 1y ago className={"bg-destructive rounded-2xl"}
44 b41894b Mardin 1y ago onClick={handleAdmingStatusDisable}
45 b41894b Mardin 1y ago >
46 b41894b Mardin 1y ago {disablePending ? <LoaderIcon className="animate-spin" /> : (<><UserX className="mr-2" /> {t('page.admins.disable_users')} </>)}
47 b41894b Mardin 1y ago </Button>
48 b41894b Mardin 1y ago <Button
49 b41894b Mardin 1y ago className="bg-success rounded-2xl"
50 b41894b Mardin 1y ago onClick={handleAdmingStatusEnable}
51 b41894b Mardin 1y ago >
52 b41894b Mardin 1y ago {enablePending ? <LoaderIcon className="animate-spin" /> : (<><UserCheck className="mr-2" /> {t('page.admins.enable_users')} </>)}
53 b41894b Mardin 1y ago </Button>
54 b41894b Mardin 1y ago </div>
55 4708fcb Dawsh 2y ago </CardHeader>
56 4708fcb Dawsh 2y ago <CardContent>
57 4708fcb Dawsh 2y ago <Table>
58 4708fcb Dawsh 2y ago <TableBody>
59 4708fcb Dawsh 2y ago <TableRowWithCell label={t("username")} value={entity.username} />
60 4708fcb Dawsh 2y ago <TableRowWithCell
61 4708fcb Dawsh 2y ago label={t("enabled")}
62 4708fcb Dawsh 2y ago value={<AdminEnabledPill admin={entity} />}
63 4708fcb Dawsh 2y ago />
64 4708fcb Dawsh 2y ago <TableRowWithCell
65 4708fcb Dawsh 2y ago label={t("page.admins.permission")}
66 4708fcb Dawsh 2y ago value={<AdminPermissionPill admin={entity} />}
67 4708fcb Dawsh 2y ago />
68 2f706e7 Mardin 2y ago <TableRowWithCell
69 2f706e7 Mardin 2y ago label={t("page.admins.users-data-usage")}
70 2f706e7 Mardin 2y ago value={`${usersDataUsage[0]} ${usersDataUsage[1]}`}
71 2f706e7 Mardin 2y ago />
72 4708fcb Dawsh 2y ago
73 4708fcb Dawsh 2y ago </TableBody>
74 4708fcb Dawsh 2y ago </Table>
75 4708fcb Dawsh 2y ago </CardContent>
76 4708fcb Dawsh 2y ago </Card>
77 4708fcb Dawsh 2y ago );
78 4708fcb Dawsh 2y ago };