From 27252cf58da2aced14425a59f0bc6cd663e69cbe Mon Sep 17 00:00:00 2001 From: faytranevozter Date: Fri, 27 Dec 2024 01:44:46 +0700 Subject: [PATCH] feat: add badge component to display container state with color coding --- .../dashboard/application/logs/show.tsx | 25 +++++++++++++++++-- .../dashboard/compose/logs/show-stack.tsx | 25 +++++++++++++++++-- .../dashboard/compose/logs/show.tsx | 21 +++++++++++++++- 3 files changed, 66 insertions(+), 5 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/logs/show.tsx b/apps/dokploy/components/dashboard/application/logs/show.tsx index 8f6bf1f1..dc895085 100644 --- a/apps/dokploy/components/dashboard/application/logs/show.tsx +++ b/apps/dokploy/components/dashboard/application/logs/show.tsx @@ -1,3 +1,4 @@ +import { Badge } from "@/components/ui/badge"; import { Card, CardContent, @@ -30,6 +31,21 @@ export const DockerLogs = dynamic( }, ); +const badgeStateColor = (state: string) => { + switch (state) { + case "running": + return "green"; + case "exited": + case "shutdown": + return "red"; + case "accepted": + case "created": + return "blue"; + default: + return "default"; + } +}; + interface Props { appName: string; serverId?: string; @@ -123,7 +139,9 @@ export const ShowDockerLogs = ({ appName, serverId }: Props) => { value={container.containerId} > {container.name} ({container.containerId}){" "} - {container.state} + + {container.state} + ))} @@ -135,7 +153,10 @@ export const ShowDockerLogs = ({ appName, serverId }: Props) => { value={container.containerId} > {container.name} ({container.containerId}@{container.node} - ) {container.state} + ) + + {container.state} + ))} diff --git a/apps/dokploy/components/dashboard/compose/logs/show-stack.tsx b/apps/dokploy/components/dashboard/compose/logs/show-stack.tsx index cec1e5af..901aeaaf 100644 --- a/apps/dokploy/components/dashboard/compose/logs/show-stack.tsx +++ b/apps/dokploy/components/dashboard/compose/logs/show-stack.tsx @@ -1,3 +1,4 @@ +import { Badge } from "@/components/ui/badge"; import { Card, CardContent, @@ -35,6 +36,21 @@ interface Props { serverId?: string; } +const badgeStateColor = (state: string) => { + switch (state) { + case "running": + return "green"; + case "exited": + case "shutdown": + return "red"; + case "accepted": + case "created": + return "blue"; + default: + return "default"; + } +}; + export const ShowDockerLogsStack = ({ appName, serverId }: Props) => { const [option, setOption] = useState<"swarm" | "native">("native"); const [containerId, setContainerId] = useState(); @@ -123,7 +139,9 @@ export const ShowDockerLogsStack = ({ appName, serverId }: Props) => { value={container.containerId} > {container.name} ({container.containerId}){" "} - {container.state} + + {container.state} + ))} @@ -135,7 +153,10 @@ export const ShowDockerLogsStack = ({ appName, serverId }: Props) => { value={container.containerId} > {container.name} ({container.containerId}@{container.node} - ) {container.state} + ) + + {container.state} + ))} diff --git a/apps/dokploy/components/dashboard/compose/logs/show.tsx b/apps/dokploy/components/dashboard/compose/logs/show.tsx index bf7e2993..56aceeb2 100644 --- a/apps/dokploy/components/dashboard/compose/logs/show.tsx +++ b/apps/dokploy/components/dashboard/compose/logs/show.tsx @@ -1,3 +1,4 @@ +import { Badge } from "@/components/ui/badge"; import { Card, CardContent, @@ -35,6 +36,21 @@ interface Props { appType: "stack" | "docker-compose"; } +const badgeStateColor = (state: string) => { + switch (state) { + case "running": + return "green"; + case "exited": + case "shutdown": + return "red"; + case "accepted": + case "created": + return "blue"; + default: + return "default"; + } +}; + export const ShowDockerLogsCompose = ({ appName, appType, @@ -87,7 +103,10 @@ export const ShowDockerLogsCompose = ({ key={container.containerId} value={container.containerId} > - {container.name} ({container.containerId}) {container.state} + {container.name} ({container.containerId}){" "} + + {container.state} + ))} Containers ({data?.length})