gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/nodes/dialogs/settings/index.tsx · v0.5.0
Source
1 ff900b8 Mrdn 2y ago import {
2 f5c168d Mardin 2y ago type SettingsDialogProps,
3 f5c168d Mardin 2y ago SettingsDialog,
4 f5c168d Mardin 2y ago Tabs,
5 f5c168d Mardin 2y ago TabsContent,
6 f5c168d Mardin 2y ago TabsList,
7 f5c168d Mardin 2y ago TabsTrigger,
8 1d782e1 Mrdn 2y ago } from "@marzneshin/components";
9 f5c168d Mardin 2y ago import type { FC } from "react";
10 1d782e1 Mrdn 2y ago import { useTranslation } from "react-i18next";
11 f5c168d Mardin 2y ago import type { NodeBackendType, NodeType } from "../..";
12 ff900b8 Mrdn 2y ago import { NodesDetailTable } from "../../tables/detail-table";
13 f5c168d Mardin 2y ago import { NodeBackendSetting } from "./node-backend-setting";
14 ff900b8 Mrdn 2y ago
15 4708fcb Dawsh 2y ago interface NodesSettingsDialogProps extends SettingsDialogProps {
16 f5c168d Mardin 2y ago entity: NodeType;
17 f5c168d Mardin 2y ago onClose: () => void;
18 ff900b8 Mrdn 2y ago }
19 ff900b8 Mrdn 2y ago
20 1d782e1 Mrdn 2y ago export const NodesSettingsDialog: FC<NodesSettingsDialogProps> = ({
21 f5c168d Mardin 2y ago onOpenChange,
22 f5c168d Mardin 2y ago open,
23 f5c168d Mardin 2y ago entity,
24 f5c168d Mardin 2y ago onClose,
25 1d782e1 Mrdn 2y ago }) => {
26 f5c168d Mardin 2y ago const { t } = useTranslation();
27 ff900b8 Mrdn 2y ago
28 f5c168d Mardin 2y ago return (
29 f5c168d Mardin 2y ago <SettingsDialog open={open} onClose={onClose} onOpenChange={onOpenChange}>
30 f5c168d Mardin 2y ago <div className="my-4">
31 f5c168d Mardin 2y ago <h1 className="font-medium font-header">
32 f5c168d Mardin 2y ago {t("page.nodes.settings.detail")}
33 f5c168d Mardin 2y ago </h1>
34 f5c168d Mardin 2y ago <NodesDetailTable node={entity} />
35 f5c168d Mardin 2y ago </div>
36 f5c168d Mardin 2y ago <Tabs
37 f5c168d Mardin 2y ago className="my-3 w-full h-full"
38 f5c168d Mardin 2y ago defaultValue={entity.backends[0].name}
39 f5c168d Mardin 2y ago >
40 f5c168d Mardin 2y ago <TabsList className="w-full">
41 f5c168d Mardin 2y ago {...entity.backends.map((backend: NodeBackendType) => (
42 f5c168d Mardin 2y ago <TabsTrigger
43 f5c168d Mardin 2y ago className="capitalize w-full"
44 f5c168d Mardin 2y ago value={backend.name}
45 f5c168d Mardin 2y ago key={backend.name}
46 f5c168d Mardin 2y ago >
47 f5c168d Mardin 2y ago {backend.name}
48 f5c168d Mardin 2y ago </TabsTrigger>
49 f5c168d Mardin 2y ago ))}
50 f5c168d Mardin 2y ago </TabsList>
51 f5c168d Mardin 2y ago {...entity.backends.map((backend: NodeBackendType) => (
52 f5c168d Mardin 2y ago <TabsContent
53 f5c168d Mardin 2y ago className="w-full"
54 f5c168d Mardin 2y ago value={backend.name}
55 f5c168d Mardin 2y ago key={backend.name}
56 f5c168d Mardin 2y ago >
57 f5c168d Mardin 2y ago <NodeBackendSetting node={entity} backend={backend.name} />
58 f5c168d Mardin 2y ago </TabsContent>
59 f5c168d Mardin 2y ago ))}
60 f5c168d Mardin 2y ago </Tabs>
61 f5c168d Mardin 2y ago </SettingsDialog>
62 f5c168d Mardin 2y ago );
63 1d782e1 Mrdn 2y ago };