feat(home): add Boards You Moderate link to Multiboards in boards box

This commit is contained in:
plebeius
2026-02-25 16:43:51 +08:00
parent 41f07124c6
commit f6906e1ff8
36 changed files with 85 additions and 35 deletions
@@ -1,5 +1,6 @@
import { Link, useNavigate } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import useAccountsStore from '@plebbit/plebbit-react-hooks/dist/stores/accounts';
import { useDirectoriesState, useDirectories, DirectoryCommunity } from '../../../hooks/use-directories';
import { getBoardPath } from '../../../lib/utils/route-utils';
import useDisclaimerModalStore from '../../../stores/use-disclaimer-modal-store';
@@ -63,6 +64,15 @@ const BoardsList = ({ multisub }: { multisub: DirectoryCommunity[] }) => {
const { useCatalogLinks, boardFilter } = useBoardsFilterStore();
const directories = useDirectories();
const accountSubplebbitAddresses = useAccountsStore(
(state) => {
const activeAccountId = state.activeAccountId;
const activeAccount = activeAccountId ? state.accounts[activeAccountId] : undefined;
return Object.keys(activeAccount?.subplebbits || {});
},
(prev, next) => prev.length === next.length && prev.every((val, idx) => val === next[idx]),
);
const handleLinkClick = (e: React.MouseEvent<HTMLAnchorElement>, address: string) => {
e.preventDefault();
const boardPath = getBoardPath(address, directories);
@@ -595,6 +605,11 @@ const BoardsList = ({ multisub }: { multisub: DirectoryCommunity[] }) => {
<li>
<Link to='/subs'>Subscriptions</Link>
</li>
{accountSubplebbitAddresses.length > 0 && (
<li>
<Link to='/mod'>{t('boards_you_moderate_nav')}</Link>
</li>
)}
</ul>
</div>
)}