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