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("Memos"); const isVisitorMode = userService.isVisitorMode(); useEffect(() => { const currentUserId = userService.getUserIdFromPath(); if (isVisitorMode && currentUserId) { api .getUserNameById(currentUserId) .then(({ data }) => { const { data: username } = data; setUsername(username); }) .catch(() => { toastHelper.error("User not found"); }); } else if (user) { setUsername(user.name); } }, []); const handleUsernameClick = useCallback(() => { locationService.clearQuery(); }, []); const handlePopupBtnClick = () => { setShouldShowPopupBtns(true); }; return (
{username} {!isVisitorMode && user?.role === "HOST" ? MOD : null}
); }; export default UserBanner;