import React, { useState, useEffect } from 'react'; import axios from 'axios'; const API_ENDPOINT = 'https://api.portfolio.techarvest.co.zw'; interface User { email: string; is_active: boolean; is_admin: boolean; login_count: number; login_limit: number; } const Admin: React.FC = () => { const [users, setUsers] = useState([]); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [limit, setLimit] = useState(3); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const fetchUsers = async () => { try { const response = await axios.get(`${API_ENDPOINT}/admin/users`, { headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } }); setUsers(response.data); } catch (err) { console.error('Failed to fetch users:', err); } }; useEffect(() => { fetchUsers(); }, []); const handleCreateUser = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(''); try { await axios.post(`${API_ENDPOINT}/admin/users`, { email, password, login_limit: limit }, { headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } }); setEmail(''); setPassword(''); fetchUsers(); alert('User created successfully'); } catch (err: any) { setError(err.response?.data?.detail || 'Failed to create user'); } finally { setLoading(false); } }; return (

Admin Dashboard - User Management

{/* Create User Form */}

Create New Access

{error &&
{error}
} setEmail(e.target.value)} required style={{ padding: '8px', border: '1px solid #ddd', borderRadius: '4px' }} /> setPassword(e.target.value)} required style={{ padding: '8px', border: '1px solid #ddd', borderRadius: '4px' }} />
setLimit(parseInt(e.target.value))} style={{ padding: '8px', border: '1px solid #ddd', borderRadius: '4px', width: '100%' }} />
{/* User List */}

Active Access Keys

{users.map(u => ( ))}
Email Logins Limit Role
{u.email} {u.login_count} {u.login_limit} {u.is_admin ? 'Admin' : 'Guest'}
); }; export default Admin;