import React from 'react' import { Head } from '@inertiajs/react' import AdminLayout from '../../../Layouts/AdminLayout' import AnalyticsNav from './AnalyticsNav' function StatCard({ label, value }) { return (

{label}

{Number(value || 0).toLocaleString()}

) } function formatDelta(delta) { if (delta === null || delta === undefined) { return 'new' } if (Number(delta) === 0) { return '0%' } return `${Number(delta) > 0 ? '+' : ''}${Number(delta).toLocaleString()}%` } function PromptLibraryTrend({ trend }) { const current = trend?.current || {} const deltas = trend?.deltas || {} const items = [ { label: 'Views', value: Number(current.views || 0).toLocaleString(), delta: deltas.views }, { label: 'Unique Visitors', value: Number(current.uniqueVisitors || 0).toLocaleString(), delta: deltas.uniqueVisitors }, { label: 'Engaged Views', value: Number(current.engagedViews || 0).toLocaleString(), delta: deltas.engagedViews }, { label: 'Engagement Rate', value: `${Number(current.engagementRate || 0).toLocaleString()}%`, delta: deltas.engagementRate }, ] return (

Prompt Library Trend

{trend?.range?.current?.from} to {trend?.range?.current?.to} compared with {trend?.range?.previous?.from} to {trend?.range?.previous?.to}

Popularity {Number(current.popularityScore || 0).toLocaleString()}
{items.map((item) => (

{item.label}

{item.value}

{formatDelta(item.delta)} vs previous

))}
) } function PopularPromptPeriodUsage({ usage }) { const periods = usage?.periods || [] return (

Popular Prompt Period Usage

Which ranking window people actually open on the public popular-prompts page.

{Number(usage?.totalViews || 0).toLocaleString()} views · {Number(usage?.totalVisitors || 0).toLocaleString()} visitors
{periods.length ? periods.map((period) => (

{period.label}

{period.period}

{Number(period.views || 0).toLocaleString()}

Views

{Number(period.uniqueVisitors || 0).toLocaleString()}

Visitors

{Number(period.share || 0).toLocaleString()}%

Share

)) :

No popular prompt period events have been tracked in this range yet.

}
) } function ContentList({ title, items = [] }) { return (

{title}

{items.length ? items.map((item) => (

{item.title}

{item.content_type_label}

{item.popularity_score}

popularity

)) :

No rollup data yet for this range.

}
) } export default function AcademyAnalyticsOverview({ nav = [], range, stats, promptLibraryTrend = null, popularPromptPeriodUsage = null, topContent = [], topWeek = [] }) { return (

Range

{range?.from} to {range?.to}

{promptLibraryTrend ? : null} {popularPromptPeriodUsage ? : null}
) }