gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/dialogs/settings/index.tsx · v0.3.0
Source
1 857e289 Mrdn 2y ago import {
2 857e289 Mrdn 2y ago ScrollArea,
3 857e289 Mrdn 2y ago Sheet,
4 857e289 Mrdn 2y ago SheetContent,
5 857e289 Mrdn 2y ago SheetHeader,
6 857e289 Mrdn 2y ago SheetTitle,
7 857e289 Mrdn 2y ago Tabs,
8 857e289 Mrdn 2y ago TabsContent,
9 857e289 Mrdn 2y ago TabsList,
10 857e289 Mrdn 2y ago TabsTrigger,
11 45e0190 Mrdn 2y ago } from "@marzneshin/components";
12 45e0190 Mrdn 2y ago import { UserServicesTable } from "@marzneshin/features/users";
13 45e0190 Mrdn 2y ago import type { UserType } from "@marzneshin/features/users";
14 45e0190 Mrdn 2y ago import type { FC } from "react";
15 45e0190 Mrdn 2y ago import { useTranslation } from "react-i18next";
16 45e0190 Mrdn 2y ago import { QRCodeSection, UserInfoTable } from "./user-info";
17 45e0190 Mrdn 2y ago import { SubscriptionActions } from "./user-info/subscription-actions";
18 857e289 Mrdn 2y ago
19 857e289 Mrdn 2y ago interface UsersSettingsDialogProps {
20 45e0190 Mrdn 2y ago onOpenChange: (state: boolean) => void;
21 45e0190 Mrdn 2y ago open: boolean;
22 45e0190 Mrdn 2y ago entity: UserType | null;
23 857e289 Mrdn 2y ago }
24 857e289 Mrdn 2y ago
25 45e0190 Mrdn 2y ago export const UsersSettingsDialog: FC<UsersSettingsDialogProps> = ({
26 45e0190 Mrdn 2y ago onOpenChange,
27 45e0190 Mrdn 2y ago open,
28 45e0190 Mrdn 2y ago entity,
29 45e0190 Mrdn 2y ago }) => {
30 857e289 Mrdn 2y ago const { t } = useTranslation();
31 857e289 Mrdn 2y ago
32 857e289 Mrdn 2y ago if (entity) {
33 857e289 Mrdn 2y ago return (
34 857e289 Mrdn 2y ago <Sheet open={open} onOpenChange={onOpenChange}>
35 45e0190 Mrdn 2y ago <SheetContent className="sm:min-w-full md:min-w-[700px]">
36 857e289 Mrdn 2y ago <ScrollArea className="flex flex-col gap-4 m-3 h-full">
37 45e0190 Mrdn 2y ago <SheetHeader className="my-1">
38 45e0190 Mrdn 2y ago <SheetTitle>{t("settings")}</SheetTitle>
39 45e0190 Mrdn 2y ago </SheetHeader>
40 857e289 Mrdn 2y ago <Tabs defaultValue="info" className="w-full h-full">
41 857e289 Mrdn 2y ago <TabsList className="w-full bg-accent">
42 45e0190 Mrdn 2y ago <TabsTrigger className="w-full" value="info">
43 45e0190 Mrdn 2y ago {" "}
44 45e0190 Mrdn 2y ago {t("user_info")}{" "}
45 45e0190 Mrdn 2y ago </TabsTrigger>
46 45e0190 Mrdn 2y ago <TabsTrigger className="w-full" value="services">
47 45e0190 Mrdn 2y ago {" "}
48 45e0190 Mrdn 2y ago {t("services")}{" "}
49 45e0190 Mrdn 2y ago </TabsTrigger>
50 857e289 Mrdn 2y ago </TabsList>
51 45e0190 Mrdn 2y ago <TabsContent
52 45e0190 Mrdn 2y ago value="info"
53 45e0190 Mrdn 2y ago className="flex flex-col gap-2 w-full h-full"
54 45e0190 Mrdn 2y ago >
55 857e289 Mrdn 2y ago <UserInfoTable entity={entity} />
56 857e289 Mrdn 2y ago <QRCodeSection entity={entity} />
57 45e0190 Mrdn 2y ago <SubscriptionActions entity={entity} />
58 857e289 Mrdn 2y ago </TabsContent>
59 857e289 Mrdn 2y ago <TabsContent value="services">
60 857e289 Mrdn 2y ago <UserServicesTable user={entity} />
61 857e289 Mrdn 2y ago </TabsContent>
62 857e289 Mrdn 2y ago </Tabs>
63 857e289 Mrdn 2y ago </ScrollArea>
64 857e289 Mrdn 2y ago </SheetContent>
65 857e289 Mrdn 2y ago </Sheet>
66 45e0190 Mrdn 2y ago );
67 857e289 Mrdn 2y ago }
68 45e0190 Mrdn 2y ago };