← marzneshin
/
dashboard/src/modules/admins/components/dialogs/settings/admin-info/table.tsx
/
blame
https://dev.kronoz.win/r/marzneshin.git
| 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 | }; |