From 1bc710271a3d881d7fa1a61280ea28d413a91e2e Mon Sep 17 00:00:00 2001 From: "plebeius.eth" Date: Mon, 6 May 2024 15:36:22 +0200 Subject: [PATCH] update loading state of newly published sub --- src/components/sidebar/sidebar.tsx | 18 ++++++++++++++++-- src/views/subplebbit/subplebbit.tsx | 10 ++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/components/sidebar/sidebar.tsx b/src/components/sidebar/sidebar.tsx index 793caa82..7cce1bf2 100644 --- a/src/components/sidebar/sidebar.tsx +++ b/src/components/sidebar/sidebar.tsx @@ -21,6 +21,7 @@ interface sidebarProps { cid?: string; createdAt?: number; description?: string; + isSubCreatedButNotYetPublished?: boolean; downvoteCount?: number; roles?: Record; rules?: string[]; @@ -124,7 +125,21 @@ const downloadAppLink = (() => { } })(); -const Sidebar = ({ address, cid, createdAt, description, downvoteCount = 0, roles, rules, timestamp = 0, title, updatedAt, upvoteCount = 0, settings }: sidebarProps) => { +const Sidebar = ({ + address, + cid, + createdAt, + description, + downvoteCount = 0, + isSubCreatedButNotYetPublished, + roles, + rules, + timestamp = 0, + title, + updatedAt, + upvoteCount = 0, + settings, +}: sidebarProps) => { const { t } = useTranslation(); const { allActiveUserCount, hourActiveUserCount } = useSubplebbitStats({ subplebbitAddress: address }); const isOnline = updatedAt && updatedAt > Date.now() / 1000 - 60 * 30; @@ -132,7 +147,6 @@ const Sidebar = ({ address, cid, createdAt, description, downvoteCount = 0, role const offlineNotice = updatedAt && t('posts_last_synced', { dateAgo: getFormattedTimeAgo(updatedAt) }); const onlineStatus = isOnline ? onlineNotice : offlineNotice; - const isSubCreatedButNotYetPublished = typeof createdAt === 'number' && !updatedAt; const subCreatedButNotYetPublishedStatus = ; const location = useLocation(); diff --git a/src/views/subplebbit/subplebbit.tsx b/src/views/subplebbit/subplebbit.tsx index e6005ffe..a78d616e 100644 --- a/src/views/subplebbit/subplebbit.tsx +++ b/src/views/subplebbit/subplebbit.tsx @@ -21,13 +21,14 @@ const Subplebbit = () => { const subplebbitAddress = params.subplebbitAddress; const subplebbitAddresses = useMemo(() => [subplebbitAddress], [subplebbitAddress]) as string[]; const subplebbit = useSubplebbit({ subplebbitAddress }); - const { createdAt, description, roles, rules, shortAddress, state, title, updatedAt, settings } = subplebbit || {}; + const { createdAt, description, roles, rules, shortAddress, started, state, title, updatedAt, settings } = subplebbit || {}; const { feed, hasMore, loadMore } = useFeed({ subplebbitAddresses, sortType, filter: timeFilter }); - const isSubCreatedButNotYetPublished = typeof createdAt === 'number' && !updatedAt; const loadingStateString = useFeedStateString(subplebbitAddresses) || t('loading'); const loadingString =
{state === 'failed' ? state : }
; - const isOnline = updatedAt && updatedAt > Date.now() / 1000 - 60 * 30; + + let isOnline = updatedAt && updatedAt > Date.now() / 1000 - 60 * 30; + const isSubCreatedButNotYetPublished = typeof createdAt === 'number' && !updatedAt; const { blocked } = useBlock({ address: subplebbitAddress }); @@ -44,7 +45,7 @@ const Subplebbit = () => { } else { footerContent = t('no_posts'); } - } else if (feed.length === 0 && isSubCreatedButNotYetPublished) { + } else if (feed.length === 0 && started && isSubCreatedButNotYetPublished) { footerContent = t('no_posts'); } else if (hasMore) { footerContent = loadingString; @@ -78,6 +79,7 @@ const Subplebbit = () => { address={subplebbitAddress} createdAt={createdAt} description={description} + isSubCreatedButNotYetPublished={started && isSubCreatedButNotYetPublished} roles={roles} rules={rules} title={title}