gitscope
← marzneshin / v0.7.1 / dashboard/src/modules/services/components/dialogs/settings.dialog.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/services/components/dialogs/settings.dialog.tsx · TypeScript
Blame Raw
 1import {
 2  SettingsDialogProps,
 3  SettingsDialog,
 4  Tabs,
 5  TabsContent,
 6  TabsList,
 7  TabsTrigger,
 8} from "@marzneshin/common/components";
 9import { type FC } from "react";
10import { useTranslation } from "react-i18next";
11import {
12  ServicesUsersTable,
13  ServiceInboundsTable,
14  ServiceType,
15} from "@marzneshin/modules/services";
16
17interface ServicecSettingsDialogProps extends SettingsDialogProps {
18  entity: ServiceType;
19  onClose: () => void;
20}
21
22export const ServiceSettingsDialog: FC<ServicecSettingsDialogProps> = ({
23  onOpenChange,
24  open,
25  entity,
26  onClose,
27}) => {
28  const { t } = useTranslation();
29
30  return (
31    <SettingsDialog open={open} onClose={onClose} onOpenChange={onOpenChange}>
32      <Tabs className="my-3 w-full h-full" defaultValue="inbounds">
33        <TabsList className="w-full">
34          <TabsTrigger className="w-full" value="inbounds">
35            {t("inbounds")}
36          </TabsTrigger>
37          <TabsTrigger className="w-full" value="users">
38            {t("users")}
39          </TabsTrigger>
40        </TabsList>
41        <TabsContent value="inbounds" className="h-full">
42          <ServiceInboundsTable service={entity} />
43        </TabsContent>
44        <TabsContent value="users" className="h-full">
45          <ServicesUsersTable service={entity} />
46        </TabsContent>
47      </Tabs>
48    </SettingsDialog>
49  );
50};