gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/admins/components/dialogs/settings/index.tsx · v0.4.0
Source
1 4708fcb Dawsh 2y ago import {
2 4708fcb Dawsh 2y ago // Button,
3 4708fcb Dawsh 2y ago Tabs,
4 4708fcb Dawsh 2y ago TabsContent,
5 4708fcb Dawsh 2y ago TabsList,
6 4708fcb Dawsh 2y ago TabsTrigger,
7 4708fcb Dawsh 2y ago Awaiting,
8 4708fcb Dawsh 2y ago SettingsInfoSkeleton,
9 4708fcb Dawsh 2y ago SettingsDialogProps,
10 4708fcb Dawsh 2y ago SettingsDialog,
11 4708fcb Dawsh 2y ago } from "@marzneshin/components";
12 4708fcb Dawsh 2y ago import {
13 4708fcb Dawsh 2y ago type AdminType
14 4708fcb Dawsh 2y ago } from "@marzneshin/features/admins";
15 4708fcb Dawsh 2y ago import { type FC, useEffect } from "react";
16 4708fcb Dawsh 2y ago import { AdminInfoTable } from "./admin-info";
17 4708fcb Dawsh 2y ago import { useTranslation } from "react-i18next";
18 4708fcb Dawsh 2y ago
19 4708fcb Dawsh 2y ago interface AdminsSettingsDialogProps extends SettingsDialogProps {
20 4708fcb Dawsh 2y ago entity: AdminType | null;
21 4708fcb Dawsh 2y ago onClose: () => void;
22 4708fcb Dawsh 2y ago isPending: boolean;
23 4708fcb Dawsh 2y ago }
24 4708fcb Dawsh 2y ago
25 4708fcb Dawsh 2y ago export const AdminsSettingsDialog: FC<AdminsSettingsDialogProps> = ({
26 4708fcb Dawsh 2y ago onOpenChange,
27 4708fcb Dawsh 2y ago open,
28 4708fcb Dawsh 2y ago entity,
29 4708fcb Dawsh 2y ago onClose,
30 4708fcb Dawsh 2y ago isPending,
31 4708fcb Dawsh 2y ago }) => {
32 4708fcb Dawsh 2y ago const { t } = useTranslation();
33 4708fcb Dawsh 2y ago
34 4708fcb Dawsh 2y ago useEffect(() => {
35 4708fcb Dawsh 2y ago if (!open) onClose();
36 4708fcb Dawsh 2y ago }, [open, onClose]);
37 4708fcb Dawsh 2y ago
38 4708fcb Dawsh 2y ago return (
39 4708fcb Dawsh 2y ago <SettingsDialog open={open} onOpenChange={onOpenChange}>
40 4708fcb Dawsh 2y ago <Awaiting
41 4708fcb Dawsh 2y ago Component={entity ? (
42 4708fcb Dawsh 2y ago <Tabs defaultValue="info" className="w-full h-full">
43 4708fcb Dawsh 2y ago <TabsList className="w-full bg-accent">
44 4708fcb Dawsh 2y ago <TabsTrigger className="w-full" value="info">
45 4708fcb Dawsh 2y ago {t("admin_info")}
46 4708fcb Dawsh 2y ago </TabsTrigger>
47 4708fcb Dawsh 2y ago <TabsTrigger className="w-full" value="services">
48 4708fcb Dawsh 2y ago {t("services")}
49 4708fcb Dawsh 2y ago </TabsTrigger>
50 4708fcb Dawsh 2y ago <TabsTrigger className="w-full" value="subscription">
51 4708fcb Dawsh 2y ago {t("users")}
52 4708fcb Dawsh 2y ago </TabsTrigger>
53 4708fcb Dawsh 2y ago </TabsList>
54 4708fcb Dawsh 2y ago <TabsContent
55 4708fcb Dawsh 2y ago value="info"
56 4708fcb Dawsh 2y ago className="flex flex-col gap-2 w-full h-full"
57 4708fcb Dawsh 2y ago >
58 4708fcb Dawsh 2y ago <AdminInfoTable admin={entity} />
59 4708fcb Dawsh 2y ago </TabsContent>
60 4708fcb Dawsh 2y ago <TabsContent value="services">
61 4708fcb Dawsh 2y ago {/* <AdminServicesTable admin={entity} /> */}
62 4708fcb Dawsh 2y ago </TabsContent>
63 4708fcb Dawsh 2y ago <TabsContent value="users">
64 4708fcb Dawsh 2y ago Users
65 4708fcb Dawsh 2y ago </TabsContent>
66 4708fcb Dawsh 2y ago </Tabs>
67 4708fcb Dawsh 2y ago ) : (<div>Not Found</div>)}
68 4708fcb Dawsh 2y ago Skeleton={<SettingsInfoSkeleton />}
69 4708fcb Dawsh 2y ago isFetching={isPending}
70 4708fcb Dawsh 2y ago />
71 4708fcb Dawsh 2y ago </SettingsDialog>
72 4708fcb Dawsh 2y ago );
73 4708fcb Dawsh 2y ago };