diff --git a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/data/tables/page.tsx b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/data/tables/page.tsx index 1bf3a98e..f15fcf69 100644 --- a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/data/tables/page.tsx +++ b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/data/tables/page.tsx @@ -61,7 +61,7 @@ export default function DataTablesPage() { >
diff --git a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/domains/page.tsx b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/domains/page.tsx index b724f996..50f100a7 100644 --- a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/domains/page.tsx +++ b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/domains/page.tsx @@ -45,7 +45,7 @@ export default function DomainsPage() { >
diff --git a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/logs/page.tsx b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/logs/page.tsx index fd89ab40..ac49382a 100644 --- a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/logs/page.tsx +++ b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/logs/page.tsx @@ -82,7 +82,7 @@ export default function LogsPage() { }} > diff --git a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx index 9e8ee865..f1a03209 100644 --- a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx +++ b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx @@ -108,7 +108,7 @@ export default function PlanTab() { >
diff --git a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/services/page.tsx b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/services/page.tsx index e67e2c25..0de97f94 100644 --- a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/services/page.tsx +++ b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/services/page.tsx @@ -17,6 +17,13 @@ import { Server, } from "lucide-react"; import { useAnatomy, type Anatomy } from "@/components/project/use-anatomy"; +import { + THEME, + PageHeader, + Card, + SectionHeader, + EmptyState, +} from "@/components/project/dashboard-ui"; /** * Hosting tab — user-facing: "Is my thing live? How do I reach it?" @@ -51,67 +58,96 @@ export default function ServicesPage() { const showLoading = loading && !anatomy; return ( -
- {showLoading && ( -
- - - Loading… - -
- )} - {error && !showLoading && ( -
- - {error} -
- )} +
+
+ - {anatomy && ( - <> - {/* ── Live endpoints ── */} -
- - {anatomy.hosting.live.length === 0 ? ( - } - title="Nothing deployed yet" - hint="Ask the AI to deploy your app and it will appear here." - promptSuggestion="Deploy my app to production" - /> - ) : ( -
- {anatomy.hosting.live.map((item) => ( - - ))} -
- )} -
+ {showLoading && ( + +
+ Loading… +
+
+ )} + {error && !showLoading && ( + +
+ {error} +
+
+ )} - {/* ── Previews ── */} - {anatomy.hosting.previews.length > 0 && ( -
- -
- {anatomy.hosting.previews.map((p) => ( - - ))} -
+ {anatomy && ( + <> + {/* ── Live endpoints ── */} +
+ + {anatomy.hosting.live.length === 0 ? ( + } + title="Nothing deployed yet" + hint="Ask the AI to deploy your app and it will appear here." + /> + ) : ( +
+ {anatomy.hosting.live.map((item) => ( + + ))} +
+ )}
- )} - - )} + + {/* ── Previews ── */} + {anatomy.hosting.previews.length > 0 && ( +
+ +
+ {anatomy.hosting.previews.map((p) => ( + + ))} +
+
+ )} + + )} +
); }