diff --git a/frontend/src/modules/admin/AdminPanel.tsx b/frontend/src/modules/admin/AdminPanel.tsx index 4ee11a7..0fd035a 100644 --- a/frontend/src/modules/admin/AdminPanel.tsx +++ b/frontend/src/modules/admin/AdminPanel.tsx @@ -1,10 +1,26 @@ -import React from "react"; -import { FaUsers, FaShieldAlt } from "react-icons/fa"; +import React, { useEffect, useState } from "react"; +import { + FaUsers, + FaShieldAlt, + FaSpinner, + FaExclamationCircle, + FaPlus, +} from "react-icons/fa"; import { useAdminStore } from "./store/useAdminStore"; import { UserCard } from "./components/UserCard"; +import { CreateUserModal } from "./components/CreateUserModal"; export const AdminPanel: React.FC = () => { const users = useAdminStore((s) => s.users); + const loading = useAdminStore((s) => s.loading); + const error = useAdminStore((s) => s.error); + const fetchUsers = useAdminStore((s) => s.fetchUsers); + + const [showCreateModal, setShowCreateModal] = useState(false); + + useEffect(() => { + fetchUsers(); + }, []); const activeCount = users.filter((u) => u.is_active).length; @@ -45,24 +61,106 @@ export const AdminPanel: React.FC = () => { Управление пользователями - {activeCount} / {users.length} активных + {loading + ? "Загрузка..." + : `${activeCount} / ${users.length} активных`} + + + {/* Error */} + {error && ( +
+ Нет зарегистрированных пользователей +
+