fix: login user online status

This commit is contained in:
Tristan Yang
2022-09-02 21:28:00 +08:00
parent 54ad5a8511
commit 46429fe6c1
+7 -4
View File
@@ -1,4 +1,4 @@
import { FC } from "react"; import { FC, memo } from "react";
import { useNavigate } from "react-router-dom"; import { useNavigate } from "react-router-dom";
import Tippy from "@tippyjs/react"; import Tippy from "@tippyjs/react";
import IconOwner from "../../../assets/icons/owner.svg"; import IconOwner from "../../../assets/icons/owner.svg";
@@ -34,11 +34,14 @@ const User: FC<Props> = ({
}) => { }) => {
const navigate = useNavigate(); const navigate = useNavigate();
const { visible: contextMenuVisible, handleContextMenuEvent, hideContextMenu } = useContextMenu(); const { visible: contextMenuVisible, handleContextMenuEvent, hideContextMenu } = useContextMenu();
const curr = useAppSelector((store) => store.users.byId[uid]); const { curr, loginUid } = useAppSelector((store) => {
return { curr: store.users.byId[uid], loginUid: store.authData.user?.uid };
});
const handleDoubleClick = () => { const handleDoubleClick = () => {
navigate(`/chat/dm/${uid}`); navigate(`/chat/dm/${uid}`);
}; };
if (!curr) return null; if (!curr) return null;
const online = curr.online || curr.uid == loginUid;
return ( return (
<ContextMenu <ContextMenu
cid={cid} cid={cid}
@@ -63,7 +66,7 @@ const User: FC<Props> = ({
> >
<div className="avatar"> <div className="avatar">
<Avatar url={curr.avatar} name={curr.name} alt="avatar" /> <Avatar url={curr.avatar} name={curr.name} alt="avatar" />
<div className={`status ${curr.online ? "online" : "offline"}`}></div> <div className={`status ${online ? "online" : "offline"}`}></div>
</div> </div>
{!compact && <span className="name">{curr?.name}</span>} {!compact && <span className="name">{curr?.name}</span>}
{owner && <IconOwner />} {owner && <IconOwner />}
@@ -73,4 +76,4 @@ const User: FC<Props> = ({
); );
}; };
export default User; export default memo(User, (prev, next) => prev.uid == next.uid);