gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/users/components/dialogs/settings/index.tsx · v0.7.0
Source
1 857e289 Mrdn 2y ago import {
2 c778675 Mardin 2y ago ScrollArea,
3 c778675 Mardin 2y ago Tabs,
4 c778675 Mardin 2y ago TabsContent,
5 c778675 Mardin 2y ago TabsList,
6 c778675 Mardin 2y ago TabsTrigger,
7 c778675 Mardin 2y ago Awaiting,
8 c778675 Mardin 2y ago SettingsInfoSkeleton,
9 c778675 Mardin 2y ago SettingsDialogProps,
10 c778675 Mardin 2y ago SettingsDialog,
11 7389ad0 Mardin 2y ago } from "@marzneshin/common/components";
12 fb9bc33 Mardin 2y ago import {
13 c778675 Mardin 2y ago UserServicesTable,
14 e6e6467 Dawsh 2y ago UserNodesUsageWidget,
15 c778675 Mardin 2y ago type UserType,
16 e6e6467 Dawsh 2y ago } from "@marzneshin/modules/users";
17 f5c168d Mardin 2y ago import { type FC } from "react";
18 45e0190 Mrdn 2y ago import { useTranslation } from "react-i18next";
19 d377c4c Dawsh 2y ago import {
20 c778675 Mardin 2y ago SubscriptionActions,
21 c778675 Mardin 2y ago QRCodeSection,
22 c778675 Mardin 2y ago UserInfoTable,
23 d377c4c Dawsh 2y ago } from "./user-info";
24 857e289 Mrdn 2y ago
25 4708fcb Dawsh 2y ago interface UsersSettingsDialogProps extends SettingsDialogProps {
26 c778675 Mardin 2y ago entity: UserType | null;
27 c778675 Mardin 2y ago onClose: () => void;
28 c778675 Mardin 2y ago isPending: boolean;
29 857e289 Mrdn 2y ago }
30 857e289 Mrdn 2y ago
31 45e0190 Mrdn 2y ago export const UsersSettingsDialog: FC<UsersSettingsDialogProps> = ({
32 c778675 Mardin 2y ago onOpenChange,
33 c778675 Mardin 2y ago open,
34 c778675 Mardin 2y ago entity,
35 c778675 Mardin 2y ago onClose,
36 c778675 Mardin 2y ago isPending,
37 45e0190 Mrdn 2y ago }) => {
38 c778675 Mardin 2y ago const { t } = useTranslation();
39 857e289 Mrdn 2y ago
40 c778675 Mardin 2y ago return (
41 c778675 Mardin 2y ago <SettingsDialog open={open} onClose={onClose} onOpenChange={onOpenChange}>
42 c778675 Mardin 2y ago <Awaiting
43 c778675 Mardin 2y ago Component={
44 c778675 Mardin 2y ago entity ? (
45 c778675 Mardin 2y ago <ScrollArea className="flex flex-col gap-4 h-full">
46 af7ee6b Mardin 2y ago <Tabs defaultValue="info" className="w-full h-fit">
47 c778675 Mardin 2y ago <TabsList className="w-full bg-accent">
48 c778675 Mardin 2y ago <TabsTrigger className="w-full" value="info">
49 c778675 Mardin 2y ago {t("user_info")}
50 c778675 Mardin 2y ago </TabsTrigger>
51 c778675 Mardin 2y ago <TabsTrigger className="w-full" value="services">
52 c778675 Mardin 2y ago {t("services")}
53 c778675 Mardin 2y ago </TabsTrigger>
54 c778675 Mardin 2y ago <TabsTrigger className="w-full" value="subscription">
55 c778675 Mardin 2y ago {t("subscription")}
56 c778675 Mardin 2y ago </TabsTrigger>
57 e6e6467 Dawsh 2y ago <TabsTrigger className="w-full" value="nodes-usage">
58 e6e6467 Dawsh 2y ago {t("page.users.nodes-usage")}
59 e6e6467 Dawsh 2y ago </TabsTrigger>
60 c778675 Mardin 2y ago </TabsList>
61 c778675 Mardin 2y ago <TabsContent
62 c778675 Mardin 2y ago value="info"
63 c778675 Mardin 2y ago className="flex flex-col gap-2 w-full h-full"
64 c778675 Mardin 2y ago >
65 c778675 Mardin 2y ago <UserInfoTable user={entity} />
66 c778675 Mardin 2y ago </TabsContent>
67 c778675 Mardin 2y ago <TabsContent value="services">
68 c778675 Mardin 2y ago <UserServicesTable user={entity} />
69 c778675 Mardin 2y ago </TabsContent>
70 c778675 Mardin 2y ago <TabsContent value="subscription">
71 c778675 Mardin 2y ago <QRCodeSection entity={entity} />
72 c778675 Mardin 2y ago <SubscriptionActions entity={entity} />
73 c778675 Mardin 2y ago </TabsContent>
74 e6e6467 Dawsh 2y ago <TabsContent value="nodes-usage">
75 e6e6467 Dawsh 2y ago <UserNodesUsageWidget user={entity} />
76 e6e6467 Dawsh 2y ago </TabsContent>
77 c778675 Mardin 2y ago </Tabs>
78 c778675 Mardin 2y ago </ScrollArea>
79 c778675 Mardin 2y ago ) : (
80 c778675 Mardin 2y ago <div>Not Found</div>
81 c778675 Mardin 2y ago )
82 c778675 Mardin 2y ago }
83 c778675 Mardin 2y ago Skeleton={<SettingsInfoSkeleton />}
84 c778675 Mardin 2y ago isFetching={isPending}
85 c778675 Mardin 2y ago />
86 c778675 Mardin 2y ago </SettingsDialog>
87 c778675 Mardin 2y ago );
88 45e0190 Mrdn 2y ago };