gitscope
← marzneshin / v0.3.0-alpha7 / dashboard/src/features/nodes/log/container.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/nodes/log/container.tsx · TypeScript
Blame Raw
 1import { Badge, Card, CardContent, CardHeader, ScrollArea } from "@marzneshin/components"
 2import { NodeType, useNodesLog } from ".."
 3import { FC } from "react"
 4import { useTranslation } from "react-i18next"
 5
 6interface LogContainerProps {
 7    node: NodeType
 8}
 9
10export const LogContainer: FC<LogContainerProps> = ({ node }) => {
11    const { logs, status, logsDiv } = useNodesLog(node)
12    const { t } = useTranslation()
13    return (
14        <Card className="h-1/2">
15            <CardContent className="flex flex-col p-1 h-full" >
16                <CardHeader className="flex flex-row justify-between items-center p-2">
17                    <p className="capitalize font-header">{t('page.nodes.settings.log-container.title')}</p>
18                    <div className="flex flex-row gap-2 justify-center items-center">
19                        <Badge variant={status === "closed" ? "destructive" : "default"} className="flex justify-center items-center w-full h-6 capitalize">
20                            {status}
21                        </Badge>
22                    </div>
23                </CardHeader>
24                <ScrollArea className="flex p-2 m-1 h-full rounded-b-md divide-dashed divide-accent bg-secondary text-primary" ref={logsDiv}>
25                    {logs.map((log: string, i) => {
26                        return <p key={i} className="font-mono text-[0.7rem] text-primary">{log}</p>
27                    })}
28                </ScrollArea>
29            </CardContent>
30        </Card>
31    )
32}