From d408cc511398fa4519e0000bd214a1f70cfb5941 Mon Sep 17 00:00:00 2001 From: "plebeius.eth" Date: Sat, 27 Jan 2024 21:00:53 +0100 Subject: [PATCH] feat(subplebbits): add 'all' tab to 'my communities' --- src/components/header/header.tsx | 17 +++++++++--- src/views/subplebbits/subplebbits.tsx | 40 +++++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 7 deletions(-) diff --git a/src/components/header/header.tsx b/src/components/header/header.tsx index 6398742f..c25dc5d6 100644 --- a/src/components/header/header.tsx +++ b/src/components/header/header.tsx @@ -29,6 +29,7 @@ import { isSubplebbitsSubscriberView, isSubplebbitsModeratorView, isSubplebbitsAdminView, + isSubplebbitsVoteView, isSubplebbitsOwnerView, isProfileUpvotedView, } from '../../lib/utils/view-utils'; @@ -207,21 +208,29 @@ const SubplebbitsHeaderTabs = () => { const isInSubplebbitsModeratorView = isSubplebbitsModeratorView(location.pathname); const isInSubplebbitsAdminView = isSubplebbitsAdminView(location.pathname); const isInSubplebbitsOwnerView = isSubplebbitsOwnerView(location.pathname); + const isInSubplebbitsVoteView = isSubplebbitsVoteView(location.pathname); const isInSubplebbitsView = - isSubplebbitsView(location.pathname) && !isInSubplebbitsSubscriberView && !isInSubplebbitsModeratorView && !isInSubplebbitsAdminView && !isInSubplebbitsOwnerView; + isSubplebbitsView(location.pathname) && + !isInSubplebbitsSubscriberView && + !isInSubplebbitsModeratorView && + !isInSubplebbitsAdminView && + !isInSubplebbitsOwnerView && + !isInSubplebbitsVoteView; return ( <>
  • - + {t('vote')}
  • {t('my_communities')} diff --git a/src/views/subplebbits/subplebbits.tsx b/src/views/subplebbits/subplebbits.tsx index 17fa88dc..f9b4a715 100644 --- a/src/views/subplebbits/subplebbits.tsx +++ b/src/views/subplebbits/subplebbits.tsx @@ -31,9 +31,15 @@ const MyCommunitiesTabs = () => { const isInSubplebbitsModeratorView = isSubplebbitsModeratorView(location.pathname); const isInSubplebbitsAdminView = isSubplebbitsAdminView(location.pathname); const isInSubplebbitsOwnerView = isSubplebbitsOwnerView(location.pathname); + const isInSubplebbitsView = + isSubplebbitsView(location.pathname) && !isInSubplebbitsSubscriberView && !isInSubplebbitsModeratorView && !isInSubplebbitsAdminView && !isInSubplebbitsOwnerView; return (
    + + {t('all')} + + | {t('subscriber')} @@ -209,14 +215,37 @@ const ApprovedSubplebbits = () => { return subplebbitsArray?.map((subplebbit, index) => ); }; +const AccountAndSubscriberSubplebbits = () => { + const { accountSubplebbits } = useAccountSubplebbits(); + const account = useAccount(); + const { subplebbits: subscribedSubplebbits } = useSubplebbits({ subplebbitAddresses: account?.subscriptions || [] }); + + const combinedSubplebbits = useMemo(() => { + const ownSubplebbitsAddresses = Object.keys(accountSubplebbits); + const subscribedAddresses = account?.subscriptions || []; + + const uniqueAddresses = Array.from(new Set([...ownSubplebbitsAddresses, ...subscribedAddresses])); + + return uniqueAddresses.map((addr) => accountSubplebbits[addr] || subscribedSubplebbits[addr]); + }, [accountSubplebbits, subscribedSubplebbits, account?.subscriptions]); + + return combinedSubplebbits.map((subplebbit, index) => ); +}; + const Subplebbits = () => { const location = useLocation(); const isInSubplebbitsSubscriberView = isSubplebbitsSubscriberView(location.pathname); const isInSubplebbitsModeratorView = isSubplebbitsModeratorView(location.pathname); const isInSubplebbitsAdminView = isSubplebbitsAdminView(location.pathname); const isInSubplebbitsOwnerView = isSubplebbitsOwnerView(location.pathname); + const isInSubplebbitsVoteView = isSubplebbitsVoteView(location.pathname); const isInSubplebbitsView = - isSubplebbitsView(location.pathname) && !isInSubplebbitsSubscriberView && !isInSubplebbitsModeratorView && !isInSubplebbitsAdminView && !isInSubplebbitsOwnerView; + isSubplebbitsView(location.pathname) && + !isInSubplebbitsSubscriberView && + !isInSubplebbitsModeratorView && + !isInSubplebbitsAdminView && + !isInSubplebbitsOwnerView && + !isInSubplebbitsVoteView; let viewRole = 'subscriber'; if (isInSubplebbitsModeratorView) { @@ -232,11 +261,16 @@ const Subplebbits = () => {
    - {isInSubplebbitsSubscriberView || isInSubplebbitsModeratorView || isInSubplebbitsAdminView || isInSubplebbitsOwnerView ? : } + {isInSubplebbitsSubscriberView || isInSubplebbitsModeratorView || isInSubplebbitsAdminView || isInSubplebbitsOwnerView || isInSubplebbitsView ? ( + + ) : ( + + )} - {isInSubplebbitsView && } + {isInSubplebbitsVoteView && } {(isInSubplebbitsModeratorView || isInSubplebbitsAdminView || isInSubplebbitsOwnerView) && } {isInSubplebbitsSubscriberView && } + {isInSubplebbitsView && }
    ); };