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