2023-05-04 18:18:47 +02:00
|
|
|
import React, { useEffect, useState } from "react";
|
|
|
|
|
import { useSubplebbit } from "@plebbit/plebbit-react-hooks";
|
|
|
|
|
|
2023-05-05 18:28:07 +02:00
|
|
|
|
2023-05-04 18:18:47 +02:00
|
|
|
const BoardAvatar = ({ address }) => {
|
|
|
|
|
const [avatarUrl, setAvatarUrl] = useState("assets/plebchan.png");
|
|
|
|
|
const subplebbit = useSubplebbit({ subplebbitAddress: address });
|
|
|
|
|
|
|
|
|
|
const isOnline = subplebbit.updatedAt > Date.now() / 1000 - 60 * 20;
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (subplebbit.suggested?.avatarUrl) {
|
|
|
|
|
setAvatarUrl(subplebbit.suggested.avatarUrl);
|
|
|
|
|
}
|
|
|
|
|
}, [subplebbit.suggested?.avatarUrl, subplebbit]);
|
|
|
|
|
|
|
|
|
|
return (
|
2023-05-05 18:28:07 +02:00
|
|
|
<>
|
|
|
|
|
<div className="board-avatar-container">
|
|
|
|
|
<img
|
|
|
|
|
className="board-avatar"
|
|
|
|
|
alt="board logo"
|
|
|
|
|
src={avatarUrl}
|
|
|
|
|
/>
|
|
|
|
|
{!isOnline && (
|
|
|
|
|
<img className="offline-indicator" alt="offline" src="assets/offline.png"
|
|
|
|
|
data-tooltip-id="tooltip"
|
2023-05-08 21:10:42 +02:00
|
|
|
data-tooltip-content="Offline"
|
2023-05-05 18:28:07 +02:00
|
|
|
data-tooltip-place="top" />
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
</>
|
2023-05-04 18:18:47 +02:00
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default BoardAvatar;
|