"use client"; import { useState, useTransition } from "react"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { updateCategory, deleteCategory } from "@/app/admin/categories/actions"; interface Props { category: { id: string; title: string; slug: string }; courseCount: number; } export function CategoryRow({ category, courseCount }: Props) { const [editing, setEditing] = useState(false); const [pending, startTransition] = useTransition(); function handleUpdate(e: React.FormEvent) { e.preventDefault(); const fd = new FormData(e.currentTarget); startTransition(() => updateCategory(category.id, fd)); setEditing(false); } function handleDelete() { if (courseCount > 0) { alert(`Нельзя удалить: к категории привязано ${courseCount} курсов`); return; } if (!confirm(`Удалить категорию «${category.title}»?`)) return; startTransition(() => deleteCategory(category.id)); } return (
{editing ? (
) : ( <> {category.title} /{category.slug} {courseCount} курсов )}
); }