import { useEffect, useState } from "react"; import { getAllUsers, updateRole } from "../api/users"; import StoreManagement from "../components/admin/StoreManagement"; import UserRoleCard from "../components/common/UserRoleCard"; import useActionToast from "../hooks/useActionToast"; import getApiErrorMessage from "../lib/getApiErrorMessage"; import "../styles/UserRoleCard.css"; import "../styles/pages/AdminPanel.css"; export default function AdminPanel() { const toast = useActionToast(); const [users, setUsers] = useState([]); const [activeTab, setActiveTab] = useState("users"); async function loadUsers() { try { const allUsers = await getAllUsers(); setUsers(allUsers.data); } catch (error) { const message = getApiErrorMessage(error, "Failed to load users"); toast.error("Load users failed", `Load users failed: ${message}`); } } useEffect(() => { loadUsers(); }, []); const changeRole = async (id, role) => { const selectedUser = users.find((user) => user.id === id); const username = selectedUser?.username || `user #${id}`; try { const updated = await updateRole(id, role); if (updated.status !== 200) { toast.error("Update role failed", "Update role failed: unexpected response"); return; } toast.success("Updated user role", `Updated role for ${username} to ${role}`); loadUsers(); } catch (error) { const message = getApiErrorMessage(error, "Failed to update user role"); toast.error("Update role failed", `Update role failed: ${message}`); } }; return (

Admin Panel

{activeTab === "users" && (
{users.map((user) => ( ))}
)} {activeTab === "stores" && }
); }