import { FC, memo } from "react"; import { useTranslation } from "react-i18next"; import { NavLink } from "react-router-dom"; import Tippy from "@tippyjs/react"; import clsx from "clsx"; import { useGetAgoraStatusQuery } from "@/app/services/server"; import { useAppSelector } from "@/app/store"; import useUserOperation from "@/hooks/useUserOperation"; import IconCall from "@/assets/icons/call.svg"; import IconMessage from "@/assets/icons/message.svg"; import IconMore from "@/assets/icons/more.svg"; import Avatar from "../Avatar"; interface Props { uid: number; type?: "embed" | "card"; cid?: number; } const Profile: FC = ({ uid, type = "embed", cid }) => { const { data: agoraEnabled } = useGetAgoraStatusQuery(); const { t } = useTranslation("member"); const { t: ct } = useTranslation(); const { canCopyEmail, copyEmail, startCall, removeFromChannel, canRemoveFromChannel, canRemove, removeUser } = useUserOperation({ uid, cid }); const { data } = useAppSelector((store) => { return { data: store.users.byId[uid] }; }); if (!data) return null; // console.log("profile", data); const { name, email, avatar // introduction = "This guy has nothing to introduce", } = data; const isCard = type == "card"; const canRemoveFromServer = !isCard && canRemove; const hasMore = email || canRemoveFromChannel || canRemoveFromServer; const iconClass = `cursor-pointer flex flex-col items-center gap-1 rounded-lg w-32 text-primary-400 bg-gray-50 hover:bg-gray-100 dark:bg-gray-800 text-sm pt-3.5 pb-3`; const containerClass = clsx( `flex-center flex-col gap-1 z-[99] mt-20 select-none`, isCard ? "p-4 w-[280px] bg-white dark:bg-gray-800 drop-shadow rounded-md" : "md:w-[432px]" ); return (

{name}

{email} {/*

{introduction}

*/}
  • {t("send_msg")}
  • {agoraEnabled && type == "embed" && (
  • {t("call")}
  • )} {agoraEnabled && type == "card" && (
  • {t("call")}
  • )} {canCopyEmail && (
  • {t("copy_email")}
  • )} {canRemoveFromChannel && (
  • {t("remove_from_channel")}
  • )} {canRemoveFromServer && (
  • {t("remove")}
  • )}
} >
  • {ct("more")}
  • ); }; export default memo(Profile);