gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/nodes/dialogs/settings/index.tsx · v0.7.4
Source
1 78a3e64 Dawsh 2y ago import {
2 78a3e64 Dawsh 2y ago type SettingsDialogProps,
3 78a3e64 Dawsh 2y ago SettingsDialog,
4 78a3e64 Dawsh 2y ago Tabs,
5 78a3e64 Dawsh 2y ago TabsContent,
6 78a3e64 Dawsh 2y ago TabsList,
7 78a3e64 Dawsh 2y ago TabsTrigger,
8 78a3e64 Dawsh 2y ago AlertCard,
9 7389ad0 Mardin 2y ago } from "@marzneshin/common/components";
10 78a3e64 Dawsh 2y ago import type { FC } from "react";
11 78a3e64 Dawsh 2y ago import { useTranslation } from "react-i18next";
12 78a3e64 Dawsh 2y ago import {
13 78a3e64 Dawsh 2y ago NodeBackendType,
14 78a3e64 Dawsh 2y ago NodeType,
15 78a3e64 Dawsh 2y ago NodesDetailTable,
16 78a3e64 Dawsh 2y ago NodesUsageWidget
17 78a3e64 Dawsh 2y ago } from "@marzneshin/modules/nodes";
18 78a3e64 Dawsh 2y ago import { NodeBackendSetting } from "./node-backend-setting";
19 78a3e64 Dawsh 2y ago
20 78a3e64 Dawsh 2y ago interface NodesSettingsDialogProps extends SettingsDialogProps {
21 78a3e64 Dawsh 2y ago entity: NodeType;
22 78a3e64 Dawsh 2y ago onClose: () => void;
23 78a3e64 Dawsh 2y ago }
24 78a3e64 Dawsh 2y ago
25 78a3e64 Dawsh 2y ago export const NodesSettingsDialog: FC<NodesSettingsDialogProps> = ({
26 78a3e64 Dawsh 2y ago onOpenChange,
27 78a3e64 Dawsh 2y ago open,
28 78a3e64 Dawsh 2y ago entity,
29 78a3e64 Dawsh 2y ago onClose,
30 78a3e64 Dawsh 2y ago }) => {
31 78a3e64 Dawsh 2y ago const { t } = useTranslation();
32 78a3e64 Dawsh 2y ago
33 78a3e64 Dawsh 2y ago return (
34 78a3e64 Dawsh 2y ago <SettingsDialog open={open} onClose={onClose} onOpenChange={onOpenChange}>
35 78a3e64 Dawsh 2y ago <Tabs defaultValue="config">
36 78a3e64 Dawsh 2y ago <TabsList className="w-full">
37 78a3e64 Dawsh 2y ago <TabsTrigger className="w-full" value="config">{t("config")}</TabsTrigger>
38 78a3e64 Dawsh 2y ago <TabsTrigger className="w-full" value="info">{t("info")}</TabsTrigger>
39 78a3e64 Dawsh 2y ago </TabsList>
40 78a3e64 Dawsh 2y ago <TabsContent value="config">
41 78a3e64 Dawsh 2y ago {entity.backends.length === 0 ? (
42 78a3e64 Dawsh 2y ago <AlertCard
43 78a3e64 Dawsh 2y ago variant="warning"
44 78a3e64 Dawsh 2y ago desc={t('page.nodes.settings.no-backend-alert.desc')}
45 78a3e64 Dawsh 2y ago title={t('page.nodes.settings.no-backend-alert.title')}
46 78a3e64 Dawsh 2y ago />
47 78a3e64 Dawsh 2y ago ) : (
48 78a3e64 Dawsh 2y ago <Tabs
49 78a3e64 Dawsh 2y ago className="my-3 w-full h-full"
50 78a3e64 Dawsh 2y ago defaultValue={entity.backends[0].name}
51 78a3e64 Dawsh 2y ago >
52 78a3e64 Dawsh 2y ago <TabsList className="w-full">
53 78a3e64 Dawsh 2y ago {...entity.backends.map((backend: NodeBackendType) => (
54 78a3e64 Dawsh 2y ago <TabsTrigger
55 78a3e64 Dawsh 2y ago className="capitalize w-full"
56 78a3e64 Dawsh 2y ago value={backend.name}
57 78a3e64 Dawsh 2y ago key={backend.name}
58 78a3e64 Dawsh 2y ago >
59 78a3e64 Dawsh 2y ago {backend.name}
60 78a3e64 Dawsh 2y ago </TabsTrigger>
61 78a3e64 Dawsh 2y ago ))}
62 78a3e64 Dawsh 2y ago </TabsList>
63 78a3e64 Dawsh 2y ago {...entity.backends.map((backend: NodeBackendType) => (
64 78a3e64 Dawsh 2y ago <TabsContent
65 78a3e64 Dawsh 2y ago className="w-full"
66 78a3e64 Dawsh 2y ago value={backend.name}
67 78a3e64 Dawsh 2y ago key={backend.name}
68 78a3e64 Dawsh 2y ago >
69 78a3e64 Dawsh 2y ago <NodeBackendSetting node={entity} backend={backend.name} />
70 78a3e64 Dawsh 2y ago </TabsContent>
71 78a3e64 Dawsh 2y ago ))}
72 78a3e64 Dawsh 2y ago </Tabs>
73 78a3e64 Dawsh 2y ago )}
74 78a3e64 Dawsh 2y ago </TabsContent>
75 78a3e64 Dawsh 2y ago <TabsContent value="info">
76 78a3e64 Dawsh 2y ago <div className="my-4">
77 78a3e64 Dawsh 2y ago <h1 className="font-medium font-header">
78 78a3e64 Dawsh 2y ago {t("page.nodes.settings.detail")}
79 78a3e64 Dawsh 2y ago </h1>
80 78a3e64 Dawsh 2y ago <NodesDetailTable node={entity} />
81 78a3e64 Dawsh 2y ago </div>
82 78a3e64 Dawsh 2y ago <NodesUsageWidget node={entity} />
83 78a3e64 Dawsh 2y ago </TabsContent>
84 78a3e64 Dawsh 2y ago </Tabs>
85 78a3e64 Dawsh 2y ago </SettingsDialog>
86 78a3e64 Dawsh 2y ago );
87 78a3e64 Dawsh 2y ago };