import { useState, useEffect } from 'react' import type { NextPage } from 'next' import Head from 'next/head' import AdminLayout from '../../components/AdminLayout' import { TagIcon, PlusIcon } from '@heroicons/react/24/outline' interface Category { id: number name: string slug: string description: string color: string priority: number is_active: boolean } const CategoriesManagement: NextPage = () => { const [categories, setCategories] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { fetchCategories() }, []) const fetchCategories = async () => { try { const response = await fetch('/api/admin/categories') if (response.ok) { const data = await response.json() setCategories(data) } } catch (error) { console.error('Failed to fetch categories:', error) } finally { setLoading(false) } } const toggleCategory = async (id: number, isActive: boolean) => { try { const response = await fetch(`/api/admin/categories/${id}`, { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ is_active: !isActive }) }) if (response.ok) { fetchCategories() } } catch (error) { console.error('Failed to update category:', error) } } return ( <> Správa kategórií - Hliadka.sk Admin

Spravujte kategórie a ich nastavenia pre klasifikáciu zdrojov

{loading ? (
Načítavanie...
) : ( {categories.map((category) => ( ))}
Názov Priorita Farba Status Akcie
{category.name}
{category.description}
{category.priority}
{category.color}
{category.is_active ? ( Aktívna ) : ( Neaktívna )}
)}
) } export default CategoriesManagement