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