// app/admin/AdminForm.tsx 'use client'; import { useActionState, useEffect, useState } from 'react'; import { FaPlus, FaTrash, FaArrowUp, FaArrowDown } from 'react-icons/fa'; // Importera pilarna import { saveConfigAction } from './actions'; import { SiteConfig } from '../lib/config'; export default function AdminForm({ initialConfig }: { initialConfig: SiteConfig }) { const [state, formAction, isPending] = useActionState(saveConfigAction, null); const [showToast, setShowToast] = useState(false); const [classes, setClasses] = useState>( Array.isArray(initialConfig.beachPage.classes) ? initialConfig.beachPage.classes : [ { name: 'Grön', color: '#16a34a', desc: 'Nybörjare' }, { name: 'Blå', color: '#2563eb', desc: 'Spelat lite' }, { name: 'Svart', color: '#111827', desc: 'Spelat mycket' } ] ); const addClass = () => setClasses([...classes, { name: '', color: '#406185', desc: '' }]); const removeClass = (index: number) => { setClasses(classes.filter((_, i) => i !== index)); }; const updateClass = (index: number, field: keyof typeof classes[0], value: string) => { const newClasses = [...classes]; newClasses[index][field] = value; setClasses(newClasses); }; // Funktioner för att byta plats på klasserna const moveUp = (index: number) => { if (index === 0) return; const newClasses = [...classes]; [newClasses[index - 1], newClasses[index]] = [newClasses[index], newClasses[index - 1]]; setClasses(newClasses); }; const moveDown = (index: number) => { if (index === classes.length - 1) return; const newClasses = [...classes]; [newClasses[index + 1], newClasses[index]] = [newClasses[index], newClasses[index + 1]]; setClasses(newClasses); }; useEffect(() => { if (state?.success) { const showTimer = setTimeout(() => setShowToast(true), 0); const hideTimer = setTimeout(() => setShowToast(false), 3000); return () => { clearTimeout(showTimer); clearTimeout(hideTimer); }; } }, [state]); return (
{showToast && (
✓ Ändringar sparade!
)} {/* Startsida */}

Startsida

{/* Beach-Turnering */}

Beach-Turnering

Du kan använda {"text"} för länkar och {"text"} för kursiv text.