diff --git a/frontend/src/components/mapMenu/MapMenu.tsx b/frontend/src/components/mapMenu/MapMenu.tsx index ba1da2e..4891fd9 100644 --- a/frontend/src/components/mapMenu/MapMenu.tsx +++ b/frontend/src/components/mapMenu/MapMenu.tsx @@ -13,7 +13,6 @@ import SuperUserMap from "./SuperUserMap/SuperUserMap.tsx"; import {observer} from "mobx-react-lite"; import authStore from "../../store/authStore.ts"; -import superUserStore from "../../store/superUserStore.ts"; import Starfield from "react-starfield"; @@ -30,7 +29,6 @@ const MapMenu: React.FC = observer(() => { setUser(user) } }) - superUserStore.setAllUsers(response.data) setIsLoading(false) }) }, []) @@ -57,7 +55,9 @@ const MapMenu: React.FC = observer(() => { /> : ( user?.is_superuser - ? + ? : { +interface ISuperUserMapProps { + logOut: () => void +} + +const SuperUserMap: React.FC = observer(({logOut}) => { const [isUsersListModalOpen, setIsUserListModalOpen] = useState(false) const [mapName, setMapName] = useState("") @@ -29,6 +34,13 @@ const SuperUserMap: React.FC = observer(() => { .then(() => moduleMenuStore.fetchModules())) }, []); + // Загрузка списка сотрудников + useEffect(() => { + axios.get("http://localhost:8000/employees/").then((response) => { + superUserStore.setAllEmployees(response.data) + }) + }, []); + const handleOnClickChangeIsModalOpen = useCallback(() => { setIsUserListModalOpen(!isUsersListModalOpen) }, [isUsersListModalOpen]) @@ -115,7 +127,7 @@ const SuperUserMap: React.FC = observer(() => { isUsersListModalOpen ? } + body={} windowContentStyles="" /> : null @@ -167,6 +179,10 @@ const SuperUserMap: React.FC = observer(() => { // @ts-ignore: Unreachable code error availableUnits={levelStore.availableLevels} /> + +
+ + ); }); diff --git a/frontend/src/components/mapMenu/SuperUserMap/UsersListModalBody.tsx b/frontend/src/components/mapMenu/SuperUserMap/UsersListModalBody.tsx index 3abc5b4..f09f35a 100644 --- a/frontend/src/components/mapMenu/SuperUserMap/UsersListModalBody.tsx +++ b/frontend/src/components/mapMenu/SuperUserMap/UsersListModalBody.tsx @@ -4,21 +4,20 @@ import ModalWindow from "../../../UIComponents/modalWindow/ModalWindow.tsx"; import UserProfileModalBody from "../UIMapMenu/UserProfile/UserProfileModalBody.tsx"; import superUserStore from "../../../store/superUserStore.ts"; - -import {IUserType} from "../../../types/UserType.ts"; +import {IEmployeeType} from "../../../types/EmployeeType.ts"; interface IUsersListModalBody { - users: IUserType[] + employees: IEmployeeType[] } -const UsersListModalBody: React.FC = ({users}) => { +const UsersListModalBody: React.FC = ({employees}) => { const [isUsersCardModalOpen, setIsUserCardModalOpen] = useState(false) const [userProfileModalBody, setUserProfileModalBody] = useState() - const handleOnClickUserCard = (user: IUserType) => { + const handleOnClickUserCard = (employee: IEmployeeType) => { setIsUserCardModalOpen(true) - superUserStore.selectUser(user) - setUserProfileModalBody() + superUserStore.selectUser(employee) + setUserProfileModalBody() } const handleOnCloseUserCard = useCallback(() => { @@ -29,19 +28,23 @@ const UsersListModalBody: React.FC = ({users}) => { return (
- {users.map((user) => ( + {employees.map((employee) => ( isUsersCardModalOpen ? : ( -
handleOnClickUserCard(user)}> -
- {user.email} +
handleOnClickUserCard(employee)}> +
+
{employee.last_name}
+
{employee.name}
+
{employee.patronymic}
Employee Photo + className="user-photo" + />
) ))} diff --git a/frontend/src/components/mapMenu/UIMapMenu/Level/ModalLevelBody.tsx b/frontend/src/components/mapMenu/UIMapMenu/Level/ModalLevelBody.tsx index 3d5c590..afbdec6 100644 --- a/frontend/src/components/mapMenu/UIMapMenu/Level/ModalLevelBody.tsx +++ b/frontend/src/components/mapMenu/UIMapMenu/Level/ModalLevelBody.tsx @@ -19,7 +19,7 @@ interface IModalLevelProps { const ModalLevelBody: React.FC = ({level}) => { const bodyHeader = renderBodyHeader() - const [levelIndex, setLevelIndex] = useState(0) + const [levelIndex, setLevelIndex] = useState(1) const menuItems: IMenuItemType[] = [ { @@ -81,7 +81,6 @@ const ModalLevelBody: React.FC = ({level}) => { } const renderTest = (unit: ITaskType | null) => { - console.log(unit) return (
@@ -116,10 +115,10 @@ const ModalLevelBody: React.FC = ({level}) => { function renderTasks(menuItems?: IMenuItemType[], theoryUnits?: ITheoryUnitType[], taskUnits?: ITaskType[]) { if (menuItems && levelIndex <= menuItems[0].length) { - return renderTheory(theoryUnits ? theoryUnits[levelIndex] : null) + return renderTheory(theoryUnits ? theoryUnits[levelIndex - menuItems[0].length] : null) } if (menuItems && levelIndex <= menuItems[0].length + menuItems[1].length) { - return renderTest(taskUnits ? taskUnits[levelIndex] : null) + return renderTest(taskUnits ? taskUnits[levelIndex - menuItems[0].length - menuItems[1].length] : null) } } diff --git a/frontend/src/store/superUserStore.ts b/frontend/src/store/superUserStore.ts index ef171b8..6398495 100644 --- a/frontend/src/store/superUserStore.ts +++ b/frontend/src/store/superUserStore.ts @@ -1,21 +1,21 @@ import {makeAutoObservable} from "mobx"; -import {IUserType} from "../types/UserType.ts"; +import {IEmployeeType} from "../types/EmployeeType.ts"; class SuperUserStore { - allUsers: IUserType[] = [] - currentUser: IUserType | null = null + allEmployees: IEmployeeType[] = [] + currentEmployee: IEmployeeType | null = null constructor() { makeAutoObservable(this) } - setAllUsers(fetchedUsers: IUserType[]) { - this.allUsers = fetchedUsers + setAllEmployees(fetchedEmployees: IEmployeeType[]) { + this.allEmployees = fetchedEmployees } - selectUser(newUser: IUserType | null) { - this.currentUser = newUser + selectUser(newUser: IEmployeeType | null) { + this.currentEmployee = newUser } } diff --git a/frontend/src/styles/mapMenu.scss b/frontend/src/styles/mapMenu.scss index 3d2ae6d..b8edc88 100644 --- a/frontend/src/styles/mapMenu.scss +++ b/frontend/src/styles/mapMenu.scss @@ -112,7 +112,7 @@ filter: drop-shadow(10px 10px 4px #aeaeae); } -.users-list-user-name { +.users-list-user-info { position: absolute; left: 35%; top: 50%;