import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
import { Head, useForm, router } from '@inertiajs/react';
import { Badge } from '@/Components/ui/badge';
import { Button } from '@/Components/ui/button';
import { useState } from 'react';

export default function UsersSettings({ users }: any) {
    const [editing, setEditing] = useState<number|null>(null);
    const { data, setData, put, processing } = useForm<any>({ role:'user', status:'active', designation:'', notes:'' });
    const openEdit = (u: any) => { setEditing(u.id); setData({ role: u.app_user?.role??'user', status: u.app_user?.status??'active', designation: u.app_user?.designation??'', notes: u.app_user?.notes??'' }); };
    const submit = (e: React.FormEvent) => { e.preventDefault(); put(`/settings/users/${editing}`, { onSuccess:()=>setEditing(null) }); };
    return (
        <AuthenticatedLayout header="User Management">
            <Head title="Users" />
            <div className="bg-white rounded-lg border border-border shadow-sm overflow-hidden">
                <table className="w-full text-sm">
                    <thead className="bg-muted/50 border-b"><tr><th className="text-left px-4 py-3 font-medium">Name</th><th className="text-left px-4 py-3 font-medium">Email</th><th className="text-left px-4 py-3 font-medium hidden md:table-cell">Role</th><th className="text-left px-4 py-3 font-medium">Status</th><th className="w-20 px-4 py-3"></th></tr></thead>
                    <tbody className="divide-y">{users.data.map((u:any)=>(
                        <tr key={u.id} className="hover:bg-muted/30">
                            <td className="px-4 py-3 font-medium">{u.name}</td>
                            <td className="px-4 py-3 text-muted-foreground">{u.email}</td>
                            <td className="px-4 py-3 hidden md:table-cell capitalize">{u.app_user?.role??'user'}</td>
                            <td className="px-4 py-3"><Badge status={u.app_user?.status??'active'}/></td>
                            <td className="px-4 py-3"><button onClick={()=>openEdit(u)} className="text-xs text-primary hover:underline">Edit</button></td>
                        </tr>
                    ))}</tbody>
                </table>
                {users.data.length===0&&<p className="text-center py-12 text-muted-foreground">No users found.</p>}
            </div>
            {editing && (
                <form onSubmit={submit} className="mt-4 bg-white rounded-lg border border-border shadow-sm p-6 max-w-md space-y-4">
                    <h2 className="font-semibold">Edit User</h2>
                    <div><label className="block text-sm font-medium mb-1">Role</label><select value={data.role} onChange={e=>setData('role',e.target.value)} className="w-full border rounded-md px-3 py-2 text-sm"><option value="user">User</option><option value="admin">Admin</option><option value="viewer">Viewer</option></select></div>
                    <div><label className="block text-sm font-medium mb-1">Status</label><select value={data.status} onChange={e=>setData('status',e.target.value)} className="w-full border rounded-md px-3 py-2 text-sm"><option value="active">Active</option><option value="inactive">Inactive</option></select></div>
                    <div><label className="block text-sm font-medium mb-1">Designation</label><input value={data.designation} onChange={e=>setData('designation',e.target.value)} className="w-full border rounded-md px-3 py-2 text-sm"/></div>
                    <div className="flex gap-3"><Button type="submit" disabled={processing}>Save</Button><Button type="button" variant="outline" onClick={()=>setEditing(null)}>Cancel</Button></div>
                </form>
            )}
        </AuthenticatedLayout>
    );
}
