diff --git a/app/page.tsx b/app/page.tsx index 62af835..a42001d 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -6,8 +6,8 @@ import { motion } from 'framer-motion' import { useAuth } from '@/lib/auth/context' import { initiateOAuthFlow, initiateSignupFlow } from '@/lib/api/oauth' import { listSites, deleteSite, type Site } from '@/lib/api/sites' -import { getStats, getDailyStats } from '@/lib/api/stats' -import type { Stats, DailyStat } from '@/lib/api/stats' +import { getStats } from '@/lib/api/stats' +import type { Stats } from '@/lib/api/stats' import { getSubscription, type SubscriptionDetails } from '@/lib/api/billing' import { LoadingOverlay } from '@ciphera-net/ui' import SiteList from '@/components/sites/SiteList' @@ -99,7 +99,7 @@ function ComparisonSection() { } -type SiteStatsMap = Record +type SiteStatsMap = Record export default function HomePage() { const { user, loading: authLoading } = useAuth() @@ -124,16 +124,12 @@ export default function HomePage() { } let cancelled = false const today = new Date().toISOString().split('T')[0] - const start7d = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString().split('T')[0] const emptyStats: Stats = { pageviews: 0, visitors: 0, bounce_rate: 0, avg_duration: 0 } const load = async () => { const results = await Promise.allSettled( sites.map(async (site) => { - const [statsRes, dailyRes] = await Promise.all([ - getStats(site.id, today, today), - getDailyStats(site.id, start7d, today, 'day'), - ]) - return { siteId: site.id, stats: statsRes, dailyStats: dailyRes ?? [] } + const statsRes = await getStats(site.id, today, today) + return { siteId: site.id, stats: statsRes } }) ) if (cancelled) return @@ -141,9 +137,9 @@ export default function HomePage() { results.forEach((r, i) => { const site = sites[i] if (r.status === 'fulfilled') { - map[site.id] = { stats: r.value.stats, dailyStats: r.value.dailyStats } + map[site.id] = { stats: r.value.stats } } else { - map[site.id] = { stats: emptyStats, dailyStats: [] } + map[site.id] = { stats: emptyStats } } }) setSiteStats(map) diff --git a/components/sites/SiteList.tsx b/components/sites/SiteList.tsx index 13eb50d..fefa001 100644 --- a/components/sites/SiteList.tsx +++ b/components/sites/SiteList.tsx @@ -2,13 +2,12 @@ import Link from 'next/link' import { Site } from '@/lib/api/sites' -import type { Stats, DailyStat } from '@/lib/api/stats' +import type { Stats } from '@/lib/api/stats' import { formatNumber } from '@ciphera-net/ui' import { BarChartIcon, SettingsIcon, BookOpenIcon, ExternalLinkIcon, Button } from '@ciphera-net/ui' import { useAuth } from '@/lib/auth/context' -import Sparkline from '@/components/dashboard/Sparkline' -export type SiteStatsMap = Record +export type SiteStatsMap = Record interface SiteListProps { sites: Site[] @@ -20,17 +19,14 @@ interface SiteListProps { interface SiteCardProps { site: Site stats: Stats | null - dailyStats: DailyStat[] statsLoading: boolean onDelete: (id: string) => void canDelete: boolean } -function SiteCard({ site, stats, dailyStats, statsLoading, onDelete, canDelete }: SiteCardProps) { +function SiteCard({ site, stats, statsLoading, onDelete, canDelete }: SiteCardProps) { const visitors24h = stats?.visitors ?? 0 const pageviews = stats?.pageviews ?? 0 - const hasChartData = dailyStats.length > 0 - const sparklineColor = 'var(--color-brand-orange)' return (
@@ -70,28 +66,20 @@ function SiteCard({ site, stats, dailyStats, statsLoading, onDelete, canDelete }
- {/* Mini Stats Grid + KPI Chart */} -
-
-
-

Visitors (24h)

-

- {statsLoading ? '--' : formatNumber(visitors24h)} -

-
-
-

Pageviews

-

- {statsLoading ? '--' : formatNumber(pageviews)} -

-
+ {/* Mini Stats Grid */} +
+
+

Visitors (24h)

+

+ {statsLoading ? '--' : formatNumber(visitors24h)} +

+
+
+

Pageviews

+

+ {statsLoading ? '--' : formatNumber(pageviews)} +

- {hasChartData && ( -
- - 7d visitors -
- )}
{/* Actions */} @@ -154,7 +142,6 @@ export default function SiteList({ sites, siteStats, loading, onDelete }: SiteLi key={site.id} site={site} stats={data?.stats ?? null} - dailyStats={data?.dailyStats ?? []} statsLoading={!data} onDelete={onDelete} canDelete={canDelete}