'use client'; import * as React from 'react'; import { AnimatePresence, motion } from 'motion/react'; import { useUser } from '@/contexts/user-context'; import { Card, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { ArrowRight, ExternalLink, FileText, HelpCircle, Layers, Shield, ShieldCheck, Terminal, User, } from 'lucide-react'; import Link from 'next/link'; import { useTranslations } from 'next-intl'; export function HomeMain() { const { user } = useUser(); const [isBannerVisible, setIsBannerVisible] = React.useState(true); const t = useTranslations('home'); const quickLinks = [ { title: t('quickLinks.profile.title'), description: t('quickLinks.profile.description'), icon: User, url: '/settings/profile', color: 'text-blue-500', bgColor: 'bg-blue-500/10', borderColor: 'hover:border-blue-500/30', }, { title: t('quickLinks.apiDocs.title'), description: t('quickLinks.apiDocs.description'), icon: FileText, url: '/docs/api', color: 'text-emerald-500', bgColor: 'bg-emerald-500/10', borderColor: 'hover:border-emerald-500/30', external: true, }, { title: t('quickLinks.userDocs.title'), description: t('quickLinks.userDocs.description'), icon: HelpCircle, url: '/docs/how-to-use', color: 'text-purple-500', bgColor: 'bg-purple-500/10', borderColor: 'hover:border-purple-500/30', external: true, }, ]; const adminLinks = [ { title: t('adminLinks.settings.title'), description: t('adminLinks.settings.description'), icon: Shield, url: '/admin/settings', color: 'text-amber-500', bgColor: 'bg-amber-500/10', borderColor: 'hover:border-amber-500/30', }, { title: t('adminLinks.systemConfig.title'), description: t('adminLinks.systemConfig.description'), icon: ShieldCheck, url: '/admin/system', color: 'text-indigo-500', bgColor: 'bg-indigo-500/10', borderColor: 'hover:border-indigo-500/30', }, { title: t('adminLinks.userManagement.title'), description: t('adminLinks.userManagement.description'), icon: User, url: '/admin/users', color: 'text-rose-500', bgColor: 'bg-rose-500/10', borderColor: 'hover:border-rose-500/30', }, { title: t('adminLinks.tasks.title'), description: t('adminLinks.tasks.description'), icon: Layers, url: '/admin/tasks', color: 'text-teal-500', bgColor: 'bg-teal-500/10', borderColor: 'hover:border-teal-500/30', }, { title: t('adminLinks.logs.title'), description: t('adminLinks.logs.description'), icon: Terminal, url: '/admin/logs', color: 'text-cyan-500', bgColor: 'bg-cyan-500/10', borderColor: 'hover:border-cyan-500/30', }, ]; return (
{t('banner.description')}
{link.description}
{link.description}