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 ? (
-
-
-
- | Name |
- Image |
- Tag |
- Short Hash |
- Tag |
- Short Hash |
-
-
-
+ <>
+ {listLoading ? (
+ <>Loading data...>
+ ) : (
+ <>
+
{list
? list
.sort((ca, cb) => {
@@ -81,13 +150,44 @@ export function DockerTable() {
}
return 0;
})
- .map((containerInfo) => )
+ .map((containerInfo) => (
+
+ ))
: null}
-
-
- ) : (
- <>Loading data...>
+
+ {/*
+
+
+
+ | Name |
+ Image |
+ Tag |
+ Short Hash |
+ Tag |
+ Short Hash |
+
+
+
+ {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}
+
+
+
*/}
+ >
)}
-
+ >
);
}
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 (
-