/* eslint-disable @typescript-eslint/no-explicit-any */ import { Head, Link, router, usePage } from '@inertiajs/react'; import React, { useState } from 'react'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Separator } from '@/components/ui/separator'; import AppLayout from '@/layouts/app-layout'; import { type BreadcrumbItem } from '@/types'; interface User { id: number; name: string; email: string; role: 'admin' | 'employee'; created_at: string; } interface PageProps { users: User[]; [key: string]: unknown; } const breadcrumbs: BreadcrumbItem[] = [ { title: 'Manajemen Pengguna', href: '/admin/users' }, ]; export default function Index({ users }: PageProps) { const { flash } = usePage().props; const [processingId, setProcessingId] = useState(null); const updateRole = (id: number, role: string) => { setProcessingId(id); router.patch( `/admin/users/${id}`, { role }, { preserveScroll: true, onFinish: () => setProcessingId(null), }, ); }; return (
{/* Flash Messages */} {flash?.success && (
{flash.success}
)} {flash?.error && (
{flash.error}
)} {/* Header */}

Manajemen Akses User

Kelola akun dan hak akses pengguna sistem.

{/* Tabel */} Daftar Pengguna
{users.length > 0 ? ( users.map((user) => ( )) ) : ( )}
Nama Email Role Saat Ini Ubah Role
{user.name} {user.email} {user.role.toUpperCase()}
Belum ada data pengguna.
); }