import RoleForm from '@admin/components/all-forms/RoleForm';
import { Button } from '@admin/components/ui/button';
import AppLayout from '@admin/layouts/app-layout';
import { PageProps } from '@admin/types/global';
import { Head, router, usePage } from '@inertiajs/react';
import { ArrowLeft, ChevronRight } from 'lucide-react';

export default function Create() {
    // @ts-ignore
    const { modulePermissions } = usePage<PageProps>().props;

    const handleSubmit = (formData: any) => {
        console.log("🚀 ~ handleSubmit ~ formData:", formData)
        router.post(route('roles.store'), formData, {
            onError: (errors) => {
                console.error('Validation errors:', errors);
            },
            // onSuccess: () => {
            //     console.log('Role created successfully');
            // }
        });
    };

    return (
        <>
            <Head title="Create Role" />
            <div className="mx-auto flex w-full flex-1 flex-col gap-4 p-3 sm:gap-6 sm:p-2">
                {/* Simple header */}
                <div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
                    <div className="flex items-start gap-3 sm:gap-4">
                        <Button
                            variant="outline"
                            size="icon"
                            onClick={() => history.back()}
                            className="shrink-0 border-none bg-muted hover:bg-muted/80"
                        >
                            <ArrowLeft className="h-4 w-4" color="black" />
                        </Button>
                        <div>
                            <h1 className="text-xl font-bold tracking-tight sm:text-2xl">Create Role</h1>
                            <p className="text-sm text-gray-600">Create a new role and assign permissions</p>
                        </div>
                    </div>
                    <div className="hidden items-center space-x-2 text-sm text-gray-500 sm:flex">
                        <span>Roles</span>
                        <ChevronRight className="h-4 w-4" />
                        <span className="font-medium text-primary">Create</span>
                    </div>
                </div>

                {/* Main content */}
                <RoleForm
                    modulePermissions={modulePermissions as any}
                    onSubmit={handleSubmit}
                    submitButtonText="Create Role"
                    isEdit={false}
                    isView={false}
                />
            </div>
        </>
    );
}

Create.layout = (page: React.ReactNode) => (
    <AppLayout
        breadcrumbs={[
            { title: 'Dashboard', href: route('dashboard') },
            { title: 'Roles', href: route('roles.index') },
            { title: 'Create', href: route('roles.create') },
        ]}
        title="Create Role"
    >
        {page}
    </AppLayout>
);
