gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/nodes/dialogs/settings/index.tsx · v0.3.0
Source
1 ff900b8 Mrdn 2y ago import {
2 ff900b8 Mrdn 2y ago Card,
3 ff900b8 Mrdn 2y ago CardContent,
4 ff900b8 Mrdn 2y ago ScrollArea,
5 ff900b8 Mrdn 2y ago Sheet,
6 ff900b8 Mrdn 2y ago SheetContent,
7 ff900b8 Mrdn 2y ago SheetHeader,
8 ff900b8 Mrdn 2y ago SheetTitle,
9 ff900b8 Mrdn 2y ago Tabs,
10 ff900b8 Mrdn 2y ago TabsContent,
11 ff900b8 Mrdn 2y ago TabsList,
12 ff900b8 Mrdn 2y ago TabsTrigger,
13 1d782e1 Mrdn 2y ago } from "@marzneshin/components";
14 1d782e1 Mrdn 2y ago import type { FC } from "react";
15 1d782e1 Mrdn 2y ago import { useTranslation } from "react-i18next";
16 1d782e1 Mrdn 2y ago import type { NodeType } from "../..";
17 ff900b8 Mrdn 2y ago import { LogContainer } from "../../log";
18 ff900b8 Mrdn 2y ago import { NodesDetailTable } from "../../tables/detail-table";
19 ff900b8 Mrdn 2y ago import { NodeConfigEditor } from "./node-config-editor";
20 ff900b8 Mrdn 2y ago
21 ff900b8 Mrdn 2y ago interface NodesSettingsDialogProps {
22 1d782e1 Mrdn 2y ago onOpenChange: (state: boolean) => void;
23 1d782e1 Mrdn 2y ago open: boolean;
24 1d782e1 Mrdn 2y ago entity: NodeType;
25 ff900b8 Mrdn 2y ago }
26 ff900b8 Mrdn 2y ago
27 1d782e1 Mrdn 2y ago export const NodesSettingsDialog: FC<NodesSettingsDialogProps> = ({
28 1d782e1 Mrdn 2y ago onOpenChange,
29 1d782e1 Mrdn 2y ago open,
30 1d782e1 Mrdn 2y ago entity,
31 1d782e1 Mrdn 2y ago }) => {
32 ff900b8 Mrdn 2y ago const { t } = useTranslation();
33 ff900b8 Mrdn 2y ago
34 ff900b8 Mrdn 2y ago return (
35 ff900b8 Mrdn 2y ago <Sheet open={open} onOpenChange={onOpenChange}>
36 1d782e1 Mrdn 2y ago <SheetContent className="sm:min-w-full md:min-w-[600px] ">
37 1d782e1 Mrdn 2y ago <ScrollArea className="h-full w-full">
38 ff900b8 Mrdn 2y ago <SheetHeader>
39 1d782e1 Mrdn 2y ago <SheetTitle>{t("page.nodes.settings.title")}</SheetTitle>
40 ff900b8 Mrdn 2y ago </SheetHeader>
41 ff900b8 Mrdn 2y ago <div className="my-4">
42 1d782e1 Mrdn 2y ago <h1 className="font-medium font-header">
43 1d782e1 Mrdn 2y ago {t("page.nodes.settings.detail")}
44 1d782e1 Mrdn 2y ago </h1>
45 ff900b8 Mrdn 2y ago <NodesDetailTable node={entity} />
46 ff900b8 Mrdn 2y ago </div>
47 1d782e1 Mrdn 2y ago <Tabs className="my-3 max-w-full h-full" defaultValue="logs">
48 ff900b8 Mrdn 2y ago <TabsList className="w-full">
49 1d782e1 Mrdn 2y ago <TabsTrigger className="w-full" value="logs">
50 1d782e1 Mrdn 2y ago {t("logs")}
51 1d782e1 Mrdn 2y ago </TabsTrigger>
52 1d782e1 Mrdn 2y ago <TabsTrigger className="w-full" value="config">
53 1d782e1 Mrdn 2y ago {t("config")}
54 1d782e1 Mrdn 2y ago </TabsTrigger>
55 ff900b8 Mrdn 2y ago </TabsList>
56 1d782e1 Mrdn 2y ago <TabsContent value="logs" className="h-full w-full">
57 ff900b8 Mrdn 2y ago <LogContainer node={entity} />
58 ff900b8 Mrdn 2y ago </TabsContent>
59 ff900b8 Mrdn 2y ago <TabsContent value="config" className="h-full z-51">
60 ff900b8 Mrdn 2y ago <Card>
61 ff900b8 Mrdn 2y ago <CardContent className="p-2 h-1/2 flex flex-col gap-2">
62 ff900b8 Mrdn 2y ago <NodeConfigEditor entity={entity} />
63 ff900b8 Mrdn 2y ago </CardContent>
64 ff900b8 Mrdn 2y ago </Card>
65 ff900b8 Mrdn 2y ago </TabsContent>
66 ff900b8 Mrdn 2y ago </Tabs>
67 ff900b8 Mrdn 2y ago </ScrollArea>
68 ff900b8 Mrdn 2y ago </SheetContent>
69 ff900b8 Mrdn 2y ago </Sheet>
70 1d782e1 Mrdn 2y ago );
71 1d782e1 Mrdn 2y ago };