diff --git a/src/views/home/boards-box/boards-box.tsx b/src/views/home/boards-box/boards-box.tsx index c830894e..7dbee2d8 100644 --- a/src/views/home/boards-box/boards-box.tsx +++ b/src/views/home/boards-box/boards-box.tsx @@ -2,13 +2,14 @@ import { Link } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { Subplebbit, useAccount, useAccountSubplebbits } from '@plebbit/plebbit-react-hooks'; import Plebbit from '@plebbit/plebbit-js/dist/browser/index.js'; +import { getFormattedTimeAgo } from '../../../lib/utils/time-utils'; import useHomeFiltersStore from '../../../stores/use-home-filters-store'; import { useMultisubMetadata } from '../../../hooks/use-default-subplebbits'; import styles from '../home.module.css'; import { nsfwTags } from '../home'; import BoxModal from '../box-modal'; -const Board = ({ isOffline, subplebbit }: { isOffline: boolean; subplebbit: Subplebbit }) => { +const Board = ({ subplebbit, subplebbits }: { subplebbit: Subplebbit; subplebbits: any }) => { const { t } = useTranslation(); const { address, title, tags } = subplebbit || {}; const nsfwTag = tags.find((tag: string) => nsfwTags.includes(tag)); @@ -16,9 +17,16 @@ const Board = ({ isOffline, subplebbit }: { isOffline: boolean; subplebbit: Subp const boardLink = useCatalog ? `/p/${address}/catalog` : `/p/${address}`; + const subplebbitData = subplebbits && subplebbits.find((sub: Subplebbit) => sub?.address === address); + const updatedAt = subplebbitData?.updatedAt; + const isOffline = updatedAt && updatedAt < Date.now() / 1000 - 60 * 60; + const offlineTitle = updatedAt + ? isOffline && t('posts_last_synced_info', { time: getFormattedTimeAgo(updatedAt), interpolation: { escapeValue: false } }) + : t('subplebbit_offline_info'); + return (
- {isOffline && } + {isOffline && } {title || address} {nsfwTag && ({t(nsfwTag)})}
@@ -55,12 +63,6 @@ const BoardsBox = ({ multisub, subplebbits }: { multisub: Subplebbit[]; subplebb ); } - const isSubOffline = (address: string) => { - const subplebbit = subplebbits && subplebbits.find((sub: Subplebbit) => sub?.address === address); - const isOffline = subplebbit?.updatedAt && subplebbit.updatedAt < Date.now() / 1000 - 60 * 60; - return isOffline; - }; - const multisubMetadata = useMultisubMetadata(); return ( @@ -85,7 +87,7 @@ const BoardsBox = ({ multisub, subplebbits }: { multisub: Subplebbit[]; subplebb

Plebbit

{plebbitSubs.map((sub) => ( - + ))}
@@ -95,7 +97,7 @@ const BoardsBox = ({ multisub, subplebbits }: { multisub: Subplebbit[]; subplebb

{t('projects')}

{projectsSubs.map((sub) => ( - + ))}
@@ -107,7 +109,7 @@ const BoardsBox = ({ multisub, subplebbits }: { multisub: Subplebbit[]; subplebb

{t('interests')}

{interestsSubs.map((sub) => ( - + ))}
@@ -119,7 +121,7 @@ const BoardsBox = ({ multisub, subplebbits }: { multisub: Subplebbit[]; subplebb

{t('random')}

{randomSubs.map((sub) => ( - + ))}
@@ -129,7 +131,7 @@ const BoardsBox = ({ multisub, subplebbits }: { multisub: Subplebbit[]; subplebb

{t('international')}

{internationalSubs.map((sub) => ( - + ))}