diff --git a/apps/web/src/components/infra/overview/infra-overview.tsx b/apps/web/src/components/infra/overview/infra-overview.tsx index 8ba1845219..d5a3f7fb83 100644 --- a/apps/web/src/components/infra/overview/infra-overview.tsx +++ b/apps/web/src/components/infra/overview/infra-overview.tsx @@ -86,9 +86,9 @@ const SOURCE_ICON: Record = { planetscale: PlanetScaleIcon, } satisfies Record -function SourceMark({ id, size }: { id: SourceId; size: number }) { +export function SourceMark({ id, size, className }: { id: SourceId; size: number; className?: string }) { const Icon = SOURCE_ICON[id] - return + return } const SOURCE_SURFACES: Record> = { diff --git a/apps/web/src/routes/infra/index.tsx b/apps/web/src/routes/infra/index.tsx index 10721bc5be..78e81f6f35 100644 --- a/apps/web/src/routes/infra/index.tsx +++ b/apps/web/src/routes/infra/index.tsx @@ -1,4 +1,4 @@ -import { useState } from "react" +import { Fragment, useState } from "react" import { Link, createFileRoute, useNavigate } from "@tanstack/react-router" import { Schema } from "effect" @@ -7,12 +7,13 @@ import { EmptyMessage } from "@maple/ui/components/ui/empty" import { countLabel } from "@maple/ui/lib/format" import { DashboardPage } from "@/components/layout/dashboard-page" -import { PlusIcon } from "@/components/icons" +import { ArrowRightIcon, SquareTerminalIcon } from "@/components/icons" import { InstallHostModal } from "@/components/infra/install-modal" import { NeedsAttention, SOURCE_ORDER, SOURCE_TITLE, + SourceMark, SourcesTable, presentSources, } from "@/components/infra/overview/infra-overview" @@ -86,20 +87,38 @@ function InfraOverviewPage() { ) : null} {missing.length > 0 ? ( - -
- Add a source - - Not reporting yet: {missing.map((id) => SOURCE_TITLE[id]).join(", ")}. - + +
+
+ Add a source + + Not reporting yet:{" "} + {missing.map((id, i) => ( + + + {" "} + {SOURCE_TITLE[id]} + {i < missing.length - 1 ? "," : "."} + {" "} + + ))} + +
+
+ + +
- -
) : null}