diff --git a/src/app/_components/docker-table.tsx b/src/app/_components/docker-table.tsx index da8f579..3f6cd55 100644 --- a/src/app/_components/docker-table.tsx +++ b/src/app/_components/docker-table.tsx @@ -51,23 +51,92 @@ function DockerRow({ ); } +function DockerCard({ + containerInfo, +}: { + containerInfo: dockerRouterType["list"][number]; +}) { + const { data: latest, isError, isLoading } = api.docker.latest.useQuery({ id: containerInfo.container.id }, { refetchOnMount: false, refetchOnWindowFocus: false, refetchOnReconnect: false }); + const outdated = containerInfo.image.current.hash !== latest?.latest.hash; + + let latestFragment: JSX.Element | null = null; + if (isError) { + latestFragment = ( + <> + {"Error"} + {"Error"} + + ); + } else if (isLoading) { + latestFragment = ( + <> + + + + + + + + ); + } else if (latest) { + latestFragment = ( + <> + {latest?.latest.tag} + {latest?.latest.hash} + + ); + } + + return ( +
+
+

{containerInfo.container.name}

+
+
+
Image
+
{containerInfo.image.name}
+
+
+
+
+
Tag
+
{containerInfo.image.name}
+
+
+
+
+
Short Hash
+
{containerInfo.image.name}
+
+
+
+
+
Tag
+
{containerInfo.image.name}
+
+
+
+
+
Short Hash
+
{containerInfo.image.name}
+
+
+
+
+ ); +} + + export function DockerTable() { const { data: list, isLoading: listLoading } = api.docker.list.useQuery(undefined, { refetchOnMount: false, refetchOnWindowFocus: false, refetchOnReconnect: false }); + return ( -
- {!listLoading ? ( - - - - - - - - - - - - + <> + {listLoading ? ( + <>Loading data... + ) : ( + <> +
{list ? list .sort((ca, cb) => { @@ -81,13 +150,44 @@ export function DockerTable() { } return 0; }) - .map((containerInfo) => ) + .map((containerInfo) => ( + + )) : null} -
-
NameImageTagShort HashTagShort Hash
- ) : ( - <>Loading data... +
+ {/*
+ + + + + + + + + + + + + {list + ? list + .sort((ca, cb) => { + if (ca.container.name && cb.container.name) { + if (ca.container.name < cb.container.name) { + return -1; + } + if (ca.container.name > cb.container.name) { + return 1; + } + } + return 0; + }) + .map((containerInfo) => ) + : null} + +
NameImageTagShort HashTagShort Hash
+
*/} + )} - + ); } diff --git a/src/app/page.tsx b/src/app/page.tsx index d5a5c9e..654d0a6 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -6,7 +6,7 @@ export default async function Home() { return (
-
+