'use client'
import { useUserProfile } from '@nextsparkjs/core/hooks/useUserProfile'
import { useRouter } from 'next/navigation'
import { useEffect } from 'react'
import { Button } from '@nextsparkjs/core/components/ui/button'
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@nextsparkjs/core/components/ui/card'
import { Badge } from '@nextsparkjs/core/components/ui/badge'
import { useTranslations } from 'next-intl'
import { getTemplateOrDefaultClient } from '@nextsparkjs/registries/template-registry.client'
import {
Loader2,
User,
Activity,
Settings,
CreditCard,
Users,
BarChart3,
ListTodo
} from 'lucide-react'
// Default dashboard page component
function DefaultDashboardPage() {
const { user, isLoading } = useUserProfile()
const router = useRouter()
const t = useTranslations('dashboard')
useEffect(() => {
if (!isLoading && !user) {
router.push('/login')
}
}, [user, isLoading, router])
if (isLoading) {
return (
)
}
if (!user) {
return null
}
const stats = [
{
title: t('stats.accountStatus'),
value: t('stats.active'),
icon: ,
trend: t('badges.verified')
},
{
title: t('stats.plan'),
value: t('stats.free'),
icon: ,
trend: t('badges.basic')
},
{
title: t('stats.teamMembers'),
value: '1',
icon: ,
trend: t('badges.solo')
},
{
title: t('stats.usage'),
value: '0%',
icon: ,
trend: t('badges.low')
},
]
return (
{/* Header */}
{t('title')}
{t('welcome', { name: user.firstName || user.email || '' })}
{/* Stats Grid */}
{stats.map((stat) => (
{stat.title}
{stat.icon}
{stat.value}
{stat.trend}
))}
{/* Quick Actions */}
{t('quickActions.title')}
{t('quickActions.description')}
{/* Activity Card */}
{t('activity.title')}
{t('activity.description')}
{t('activity.signedIn')}
{t('activity.justNow')}
{t('activity.accountCreated')}
{new Date(user.createdAt || '').toLocaleDateString()}
)
}
// Export the resolved component (theme override or default)
export default getTemplateOrDefaultClient('app/dashboard/(main)/page.tsx', DefaultDashboardPage)