gitscope
← marzneshin / v0.5.5 / dashboard/src/features/admins/components/dialogs/settings/index.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/admins/components/dialogs/settings/index.tsx · TypeScript
Blame Raw
 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};