import { getSupabaseServerClient } from '@kit/supabase/server-client';
import { createSiteBuilderApi } from '@kit/site-builder/api';
import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card';
import { Badge } from '@kit/ui/badge';
import { Button } from '@kit/ui/button';
import { cn } from '@kit/ui/utils';
import { Plus, Globe, FileText, Settings, ExternalLink } from 'lucide-react';
import Link from 'next/link';
import { CmsPageShell } from '~/components/cms-page-shell';
import { EmptyState } from '~/components/empty-state';
import { AccountNotFound } from '~/components/account-not-found';
interface Props { params: Promise<{ account: string }> }
export default async function SiteBuilderDashboard({ params }: Props) {
const { account } = await params;
const client = getSupabaseServerClient();
const { data: acct } = await client.from('accounts').select('id').eq('slug', account).single();
if (!acct) return ;
const api = createSiteBuilderApi(client);
const pages = await api.listPages(acct.id);
const settings = await api.getSiteSettings(acct.id);
const posts = await api.listPosts(acct.id);
const isOnline = Boolean(settings?.is_public);
const publishedCount = pages.filter((p: Record) => p.is_published).length;
return (
{isOnline && (
)}
Seiten
{pages.length}
Veröffentlicht
{publishedCount}
Status
{isOnline ? 'Online' : 'Offline'}
{pages.length === 0 ? (
}
title="Noch keine Seiten"
description="Erstellen Sie Ihre erste Seite mit dem visuellen Editor."
actionLabel="Erste Seite erstellen"
actionHref={`/home/${account}/site-builder/new`}
/>
) : (