import { Head, useForm } from '@inertiajs/react';

import { AdminLayout } from '@/layouts/admin-layout';
import { BlogCategoryFormView } from './create';

type BlogCategoryData = {
    id: number;
    name: string;
    slug: string;
    description: string | null;
    is_active: boolean;
    sort_order: number;
};

type BlogCategoryEditProps = {
    category: BlogCategoryData;
};

type BlogCategoryForm = {
    name: string;
    slug: string;
    description: string;
    is_active: boolean;
    sort_order: number;
};

export default function BlogCategoryEdit({ category }: BlogCategoryEditProps) {
    const form = useForm<BlogCategoryForm>({
        name: category.name,
        slug: category.slug,
        description: category.description || '',
        is_active: category.is_active,
        sort_order: category.sort_order,
    });

    const submit = (event: React.FormEvent<HTMLFormElement>) => {
        event.preventDefault();

        form.transform((data) => ({
            ...data,
            slug: data.slug === '' ? null : data.slug,
        }));

        form.put(`/admin/blog-categories/${category.id}`);
    };

    return (
        <AdminLayout>
            <Head title="Edit Blog Category" />

            <BlogCategoryFormView
                title="Edit Blog Category"
                form={form}
                onSubmit={submit}
            />
        </AdminLayout>
    );
}
