import { useCallback, useEffect, useState } from "react"; import * as api from "../helpers/api"; import userService from "../services/userService"; import { locationService } from "../services"; import { useAppSelector } from "../store"; import toastHelper from "./Toast"; import MenuBtnsPopup from "./MenuBtnsPopup"; import "../less/user-banner.less"; interface Props {} const UserBanner: React.FC = () => { const user = useAppSelector((state) => state.user.user); const [shouldShowPopupBtns, setShouldShowPopupBtns] = useState(false); const [username, setUsername] = useState(user ? user.name : "Memos"); const handleUsernameClick = useCallback(() => { locationService.clearQuery(); }, []); const handlePopupBtnClick = () => { setShouldShowPopupBtns(true); }; useEffect(() => { if (username === "Memos") { if (locationService.getState().pathname === "/") { api.getSystemStatus().then(({ data }) => { const { data: status } = data; setUsername(status.owner.name); }); } else { const currentUserId = userService.getCurrentUserId(); if (currentUserId) { api .getUserNameById(currentUserId) .then(({ data }) => { const { data: username } = data; setUsername(username); }) .catch(() => { toastHelper.error("User not found"); }); } } } }, []); return (
{username} {user?.role === "OWNER" ? MOD : null}
); }; export default UserBanner;