import { prisma } from '@/lib/db'; import { isAuthenticated, logoutAdmin, addButton, deleteButton } from '@/app/actions/admin'; import { redirect } from 'next/navigation'; import { GlassCard } from '@/components/GlassCard'; import { ThemeToggle } from '@/components/ThemeToggle'; import { Trash2, LogOut, PlusCircle, Globe, ArrowLeft } from 'lucide-react'; import Image from 'next/image'; import Link from 'next/link'; export const dynamic = 'force-dynamic'; function getDomainFromUrl(url: string): string { try { return new URL(url).hostname; } catch { return url; } } export default async function AdminPage() { const auth = await isAuthenticated(); if (!auth) { redirect('/admin/login'); } const buttons = await prisma.button.findMany({ orderBy: { order: 'asc' }, }); return (
{/* Header */}

Administration

Gérez vos raccourcis d'applications

{/* Add form */}

Ajouter une application

{/* Button list */} {buttons.length === 0 ? (
Aucun bouton configuré. Ajoutez-en un ci-dessus.
) : (
{buttons.map((btn: any) => { const domain = getDomainFromUrl(btn.url); const faviconUrl = `https://www.google.com/s2/favicons?domain=${domain}&sz=32`; return (
{btn.name}
{btn.name}
{btn.url}
{ 'use server'; await deleteButton(btn.id); }}>
); })}
)}
); }