diff --git a/src/api/roles.ts b/src/api/roles.ts index 89014c4..78f454e 100644 --- a/src/api/roles.ts +++ b/src/api/roles.ts @@ -21,6 +21,8 @@ export const MOCK_DATA_USERS = [ export type TMockData = typeof MOCK_DATA_USERS; +export type UsersType = { login: string; email: string; phoneNumber: string; isDeleted: boolean; createdAt: string }[]; + export const getRoles_mock = (): Promise => { return new Promise((resolve) => { setTimeout(() => { diff --git a/src/index.tsx b/src/index.tsx index 04899f0..cfeaa9e 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -7,8 +7,6 @@ import { ThemeProvider } from "@mui/material/styles"; import { SnackbarProvider } from "notistack"; -import theme from "./theme"; - import PublicRoute from "@kitUI/publicRoute"; import PrivateRoute from "@kitUI/privateRoute"; @@ -26,6 +24,7 @@ import PromocodeManagement from "@pages/dashboard/Content/PromocodeManagement"; import { SettingRoles } from "@pages/Setting/SettingRoles"; import Support from "@pages/dashboard/Content/Support/Support"; +import theme from "./theme"; import "./index.css"; const componentsArray = [ diff --git a/src/pages/Setting/ConditionalRender.tsx b/src/pages/Setting/ConditionalRender.tsx index 8ed1537..bcefab4 100644 --- a/src/pages/Setting/ConditionalRender.tsx +++ b/src/pages/Setting/ConditionalRender.tsx @@ -3,6 +3,7 @@ import React, { useEffect, useState } from "react"; type ConditionalRenderProps = { isLoading: boolean; + role: string; childrenUser?: JSX.Element; childrenAdmin?: JSX.Element; childrenManager?: JSX.Element; @@ -10,25 +11,26 @@ type ConditionalRenderProps = { const ConditionalRender = ({ isLoading, + role, childrenUser, childrenAdmin, childrenManager, }: ConditionalRenderProps): JSX.Element => { - const [role, setRole] = useState(""); + // const [role, setRole] = useState(""); - useEffect(() => { - const axiosAccount = async () => { - try { - const { data } = await axios.get("https://admin.pena.digital/user/643e23f3dba63ba17272664d"); - setRole(data.role); - } catch (error) { - console.error("Ошибка при получение роли пользавателя"); - } - }; - axiosAccount(); - }, [role]); + // useEffect(() => { + // const axiosAccount = async () => { + // try { + // const { data } = await axios.get("https://admin.pena.digital/user/643e23f3dba63ba17272664d"); + // setRole(data.role); + // } catch (error) { + // console.error("Ошибка при получение роли пользавателя"); + // } + // }; + // axiosAccount(); + // }, [role]); - if (isLoading) { + if (!isLoading) { if (role === "admin") { return childrenAdmin ? childrenAdmin :
Администратор
; } diff --git a/src/pages/dashboard/Content/Users.tsx b/src/pages/dashboard/Content/Users.tsx index 6c1359d..ffe0e2e 100644 --- a/src/pages/dashboard/Content/Users.tsx +++ b/src/pages/dashboard/Content/Users.tsx @@ -14,9 +14,13 @@ import AccordionDetails from "@mui/material/AccordionDetails"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; import ClearIcon from "@mui/icons-material/Clear"; import { getRoles_mock, TMockData } from "../../../api/roles"; + +import type { UsersType } from "../../../api/roles"; + import theme from "../../../theme"; import axios from "axios"; import {authStore} from "@stores/auth"; +import ConditionalRender from "@root/pages/Setting/ConditionalRender"; const Users: React.FC = () => { const { makeRequest } = authStore(); @@ -26,11 +30,14 @@ const Users: React.FC = () => { bearer: true, contentType: true, }) - const radioboxes = ["a", "b", "c"]; + const radioboxes = ["admin", "manager", "user"]; - const [selectedValue, setSelectedValue] = React.useState("a"); + const [selectedValue, setSelectedValue] = React.useState("admin"); const handleChange = (event: React.ChangeEvent) => { setSelectedValue(event.target.value); + + if (selectedValue === "manager") { + } }; const navigate = useNavigate(); @@ -65,18 +72,36 @@ const Users: React.FC = () => { handleChangeData(); const [roles, setRoles] = React.useState([]); + const [users, setUsers] = React.useState(); + const [manager, setManager] = React.useState(); React.useEffect(() => { const axiosRoles = async () => { - const response = await axios({ + const { data } = await axios({ method: "get", url: "https://admin.pena.digital/strator/role/", }); - return response; + setRoles(data); }; - axiosRoles().then((result) => { - setRoles(result.data); - }); + const gettingRegisteredUsers = async () => { + const { data } = await axios({ + method: "get", + url: "https://hub.pena.digital/user/", + }); + setUsers(data); + }; + + const gettingListManagers = async () => { + const { data } = await axios({ + method: "get", + url: "https://admin.pena.digital/user/", + }); + setManager(data); + }; + + gettingListManagers(); + gettingRegisteredUsers(); + axiosRoles(); }, []); return ( @@ -390,72 +415,192 @@ const Users: React.FC = () => { color: theme.palette.secondary.main, }} > - ID + login + + + + + + email + + + + + phoneNumber + + + + + isDeleted + + + + + createdAt - navigate("/modalUser")} - > - - - 1 - - - + + {manager && + manager.map(({ login, email, phoneNumber, isDeleted, createdAt }) => ( + + + + {login} + + - navigate("/modalUser")} - > - - - 2 - - - + + + {email} + + + + + {phoneNumber} + + + + + {isDeleted ? "true" : "false"} + + + + + {createdAt} + + + + ))} + + } + childrenUser={ + <> + {users && + users.map(({ login, email, phoneNumber, isDeleted, createdAt }) => ( + + + + {login} + + - navigate("/modalUser")} - > - - - 3 - - - + + + {email} + + + + + {phoneNumber} + + + + + {isDeleted ? "true" : "false"} + + + + + {createdAt} + + + + ))} + + } + />