diff --git a/README.md b/README.md index 61843a1c..8a5c2134 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Currently, directory assignments are temporarily handpicked by developers throug ### How It Works -- **Current System**: Developers manually curate directory assignments by reviewing pull requests to the [5chan-multisub.json](https://github.com/bitsocialhq/lists/blob/master/5chan-multisub.json) file. +- **Current System**: Developers manually curate directory assignments by reviewing pull requests to the [5chan-directories.json](https://github.com/bitsocialhq/lists/blob/master/5chan-directories.json) file. - **Future System**: Directory board assignments will be determined through gasless voting using pubsub. Community members will vote on which board should be assigned to each directory, and the highest-voted board will automatically become the directory board. This creates a competitive marketplace where board quality and community engagement determine directory placement. @@ -72,7 +72,7 @@ To have your board appear in a directory on the 5chan homepage: - Relevant to the directory category - **99% uptime** (since a board acts like its own server—it's a P2P node) -2. Open a pull request on GitHub by editing the [5chan-multisub.json](https://github.com/bitsocialhq/lists/blob/master/5chan-multisub.json) file +2. Open a pull request on GitHub by editing the [5chan-directories.json](https://github.com/bitsocialhq/lists/blob/master/5chan-directories.json) file 3. Add your board's entry with: - Title: in the format `/directoryCode/ - Title`, e.g. "/biz/ - Business & Finance"; diff --git a/src/app.tsx b/src/app.tsx index 81f5eba1..5a6d690a 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -9,7 +9,7 @@ import useCreateBoardModalStore from './stores/use-create-board-modal-store'; import useSpecialThemeStore from './stores/use-special-theme-store'; import useIsMobile from './hooks/use-is-mobile'; import useTheme from './hooks/use-theme'; -import { useDefaultSubplebbits } from './hooks/use-default-subplebbits'; +import { useDirectories } from './hooks/use-directories'; import { getSubplebbitAddress, isPostRoute, isPendingPostRoute, isModQueueRoute } from './lib/utils/route-utils'; import styles from './app.module.css'; import FAQ from './views/faq'; @@ -44,8 +44,8 @@ const BoardLayout = () => { const isInAllView = isAllView(location.pathname); const isInSubscriptionsView = isSubscriptionsView(location.pathname, useParams()); const isInModView = isModView(location.pathname); - const defaultSubplebbits = useDefaultSubplebbits(); - const subplebbitAddress = boardIdentifier ? getSubplebbitAddress(boardIdentifier, defaultSubplebbits) : undefined; + const directories = useDirectories(); + const subplebbitAddress = boardIdentifier ? getSubplebbitAddress(boardIdentifier, directories) : undefined; const pendingPost = useAccountComment({ commentIndex: accountCommentIndex ? parseInt(accountCommentIndex) : undefined }); const { closeCreateBoardModal } = useCreateBoardModalStore(); diff --git a/src/components/board-buttons/board-buttons.tsx b/src/components/board-buttons/board-buttons.tsx index 381c965f..6ee39ad0 100644 --- a/src/components/board-buttons/board-buttons.tsx +++ b/src/components/board-buttons/board-buttons.tsx @@ -3,7 +3,7 @@ import { Link, useLocation, useNavigate, useParams } from 'react-router-dom'; import { useAccountComment, useSubscribe } from '@plebbit/plebbit-react-hooks'; import useSubplebbitsPagesStore from '@plebbit/plebbit-react-hooks/dist/stores/subplebbits-pages'; import { isAllView, isCatalogView, isModView, isModQueueView, isPendingPostView, isPostPageView, isSubscriptionsView } from '../../lib/utils/view-utils'; -import { useDefaultSubplebbits } from '../../hooks/use-default-subplebbits'; +import { useDirectories } from '../../hooks/use-directories'; import { getBoardPath, isDirectoryBoard } from '../../lib/utils/route-utils'; import { useResolvedSubplebbitAddress } from '../../hooks/use-resolved-subplebbit-address'; import useCatalogFiltersStore from '../../stores/use-catalog-filters-store'; @@ -35,7 +35,7 @@ interface BoardButtonsProps { const CatalogButton = ({ address, isInAllView, isInSubscriptionsView, isInModView }: BoardButtonsProps) => { const { t } = useTranslation(); const params = useParams(); - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); const createCatalogLink = () => { if (isInAllView) { @@ -50,9 +50,9 @@ const CatalogButton = ({ address, isInAllView, isInSubscriptionsView, isInModVie } let boardPath = ''; if (address) { - boardPath = getBoardPath(address, defaultSubplebbits); - } else if (Array.isArray(defaultSubplebbits) && defaultSubplebbits.length > 0 && defaultSubplebbits[0]?.address) { - boardPath = getBoardPath(defaultSubplebbits[0].address, defaultSubplebbits); + boardPath = getBoardPath(address, directories); + } else if (Array.isArray(directories) && directories.length > 0 && directories[0]?.address) { + boardPath = getBoardPath(directories[0].address, directories); } return `/${boardPath}/catalog`; }; @@ -78,7 +78,7 @@ const SubscribeButton = ({ address }: BoardButtonsProps) => { const ReturnButton = ({ address, isInAllView, isInSubscriptionsView, isInModView, isInModQueueView }: BoardButtonsProps) => { const { t } = useTranslation(); const params = useParams(); - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); const createReturnLink = () => { if (isInAllView) { @@ -99,9 +99,9 @@ const ReturnButton = ({ address, isInAllView, isInSubscriptionsView, isInModView } let boardPath = ''; if (address) { - boardPath = getBoardPath(address, defaultSubplebbits); - } else if (Array.isArray(defaultSubplebbits) && defaultSubplebbits.length > 0 && defaultSubplebbits[0]?.address) { - boardPath = getBoardPath(defaultSubplebbits[0].address, defaultSubplebbits); + boardPath = getBoardPath(address, directories); + } else if (Array.isArray(directories) && directories.length > 0 && directories[0]?.address) { + boardPath = getBoardPath(directories[0].address, directories); } return `/${boardPath}`; }; @@ -116,13 +116,13 @@ const ReturnButton = ({ address, isInAllView, isInSubscriptionsView, isInModView const VoteButton = () => { const { t } = useTranslation(); const params = useParams(); - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); // Get the boardIdentifier from params (try boardIdentifier first, then subplebbitAddress for backward compatibility) const boardIdentifier = params.boardIdentifier || params.subplebbitAddress; // Only render the vote button if we're on a directory board route - if (!boardIdentifier || !isDirectoryBoard(boardIdentifier, defaultSubplebbits)) { + if (!boardIdentifier || !isDirectoryBoard(boardIdentifier, directories)) { return null; } @@ -418,9 +418,9 @@ export const MobileBoardButtons = () => { const { filteredCount, searchText } = useCatalogFiltersStore(); // Check if we should show the vote button (only for directory boards) - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); const boardIdentifier = params.boardIdentifier || params.subplebbitAddress; - const showVoteButton = boardIdentifier && isDirectoryBoard(boardIdentifier, defaultSubplebbits); + const showVoteButton = boardIdentifier && isDirectoryBoard(boardIdentifier, directories); return (
@@ -539,9 +539,9 @@ export const DesktopBoardButtons = () => { const { filteredCount, searchText } = useCatalogFiltersStore(); // Check if we should show the vote button (only for directory boards) - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); const boardIdentifier = params.boardIdentifier || params.subplebbitAddress; - const showVoteButton = boardIdentifier && isDirectoryBoard(boardIdentifier, defaultSubplebbits); + const showVoteButton = boardIdentifier && isDirectoryBoard(boardIdentifier, directories); return ( <> @@ -655,9 +655,9 @@ const SearchOPsBar = () => { const isInAllView = isAllView(location.pathname); const isInSubscriptionsView = isSubscriptionsView(location.pathname, useParams()); const isInModView = isModView(location.pathname); - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); const resolvedAddress = useResolvedSubplebbitAddress(); - const boardPath = resolvedAddress ? getBoardPath(resolvedAddress, defaultSubplebbits) : params?.boardIdentifier || params?.subplebbitAddress; + const boardPath = resolvedAddress ? getBoardPath(resolvedAddress, directories) : params?.boardIdentifier || params?.subplebbitAddress; const handleSearch = (event: React.KeyboardEvent) => { if (event.key === 'Enter') { diff --git a/src/components/board-header/board-header.tsx b/src/components/board-header/board-header.tsx index a2123a50..920acf00 100644 --- a/src/components/board-header/board-header.tsx +++ b/src/components/board-header/board-header.tsx @@ -8,7 +8,7 @@ import Plebbit from '@plebbit/plebbit-js'; import { useStableSubplebbit } from '../../hooks/use-stable-subplebbit'; import { isAllView, isSubscriptionsView, isModView } from '../../lib/utils/view-utils'; import styles from './board-header.module.css'; -import { useMultisubMetadata, useDefaultSubplebbits } from '../../hooks/use-default-subplebbits'; +import { useDirectoriesMetadata, useDirectories } from '../../hooks/use-directories'; import { useResolvedSubplebbitAddress } from '../../hooks/use-resolved-subplebbit-address'; import useIsMobile from '../../hooks/use-is-mobile'; import useIsSubplebbitOffline from '../../hooks/use-is-subplebbit-offline'; @@ -59,11 +59,11 @@ const BoardHeader = () => { const stableSubplebbit = useStableSubplebbit(subplebbitAddress); const { address, shortAddress } = stableSubplebbit || {}; - const multisubMetadata = useMultisubMetadata(); - const defaultSubplebbits = useDefaultSubplebbits(); + const directoriesMetadata = useDirectoriesMetadata(); + const directories = useDirectories(); // Find matching subplebbit from default list to get its title - const defaultSubplebbit = subplebbitAddress ? defaultSubplebbits.find((s) => s.address === subplebbitAddress) : null; + const defaultSubplebbit = subplebbitAddress ? directories.find((s) => s.address === subplebbitAddress) : null; // Use accounts store with selector to only subscribe to subscriptions count const subscriptionsCount = useAccountsStore((state) => { @@ -74,7 +74,7 @@ const BoardHeader = () => { const subscriptionsSubtitle = t('subscriptions_subtitle', { count: subscriptionsCount }); const title = isInAllView - ? multisubMetadata?.title || '/all/ - 5chan Directories' + ? directoriesMetadata?.title || '/all/ - 5chan Directories' : isInSubscriptionsView ? '/subs/ - Subscriptions' : isInModView diff --git a/src/components/catalog-row/catalog-row.tsx b/src/components/catalog-row/catalog-row.tsx index e3cdb44c..19aca254 100644 --- a/src/components/catalog-row/catalog-row.tsx +++ b/src/components/catalog-row/catalog-row.tsx @@ -9,7 +9,7 @@ import { shouldShowSnow } from '../../lib/snow'; import { getHasThumbnail } from '../../lib/utils/media-utils'; import { getFormattedTimeAgo } from '../../lib/utils/time-utils'; import { isAllView, isSubscriptionsView } from '../../lib/utils/view-utils'; -import { useDefaultSubplebbits } from '../../hooks/use-default-subplebbits'; +import { useDirectories } from '../../hooks/use-directories'; import { getBoardPath } from '../../lib/utils/route-utils'; import useCatalogFiltersStore from '../../stores/use-catalog-filters-store'; import useCatalogStyleStore from '../../stores/use-catalog-style-store'; @@ -125,8 +125,8 @@ const CatalogPost = memo( const params = useParams(); const isInAllView = isAllView(location.pathname); const isInSubscriptionsView = isSubscriptionsView(location.pathname, params); - const defaultSubplebbits = useDefaultSubplebbits(); - const boardPath = subplebbitAddress ? getBoardPath(subplebbitAddress, defaultSubplebbits) : ''; + const directories = useDirectories(); + const boardPath = subplebbitAddress ? getBoardPath(subplebbitAddress, directories) : ''; const postMenuProps = useMemo(() => selectPostMenuProps(post), [post]); const postLink = boardPath ? `/${boardPath}/thread/${cid}` : `/thread/${cid}`; diff --git a/src/components/create-board-modal/create-board-modal.tsx b/src/components/create-board-modal/create-board-modal.tsx index c6d78e52..e8583bb8 100644 --- a/src/components/create-board-modal/create-board-modal.tsx +++ b/src/components/create-board-modal/create-board-modal.tsx @@ -42,8 +42,8 @@ const CreateBoardModal = () => {

Submitting to a Directory

Open a PR editing{' '} - - 5chan-multisub.json + + 5chan-directories.json {' '} with your board's title, address, and NSFW status. Devs will review and merge if approved. 99% uptime is required.

diff --git a/src/components/directory-modal/directory-modal.tsx b/src/components/directory-modal/directory-modal.tsx index 3edada33..3b9a6c7c 100644 --- a/src/components/directory-modal/directory-modal.tsx +++ b/src/components/directory-modal/directory-modal.tsx @@ -50,8 +50,8 @@ const DirectoryModal = () => {

Directory Submission

To submit your board, open a PR editing{' '} - - 5chan-multisub.json + + 5chan-directories.json {' '} with your board's title, address, and NSFW status. Requirements: 99% uptime (they're P2P nodes), active, well-moderated, and relevant to the category. Devs will review and approve/reject based on these criteria. diff --git a/src/components/post-desktop/post-desktop.tsx b/src/components/post-desktop/post-desktop.tsx index 166d60ac..9d3adf0c 100644 --- a/src/components/post-desktop/post-desktop.tsx +++ b/src/components/post-desktop/post-desktop.tsx @@ -11,7 +11,7 @@ import { getFormattedDate, getFormattedTimeAgo } from '../../lib/utils/time-util import { isValidURL } from '../../lib/utils/url-utils'; import { isAllView, isModQueueView, isPendingPostView, isPostPageView, isSubscriptionsView } from '../../lib/utils/view-utils'; import useModQueueStore from '../../stores/use-mod-queue-store'; -import { useDefaultSubplebbits } from '../../hooks/use-default-subplebbits'; +import { useDirectories } from '../../hooks/use-directories'; import { getBoardPath } from '../../lib/utils/route-utils'; import useAvatarVisibilityStore from '../../stores/use-avatar-visibility-store'; import useAuthorAddressClick from '../../hooks/use-author-address-click'; @@ -85,8 +85,8 @@ const PostInfo = ({ const { showOmittedReplies } = useShowOmittedReplies(); const { imageUrl: avatarImageUrl } = useAuthorAvatar({ author }); const { hideAvatars } = useAvatarVisibilityStore(); - const defaultSubplebbits = useDefaultSubplebbits(); - const boardPath = subplebbitAddress ? getBoardPath(subplebbitAddress, defaultSubplebbits) : undefined; + const directories = useDirectories(); + const boardPath = subplebbitAddress ? getBoardPath(subplebbitAddress, directories) : undefined; const postMenuProps = useMemo(() => selectPostMenuProps(post), [post]); const params = useParams(); @@ -453,7 +453,7 @@ const PostMedia = ({ const { url } = commentMediaInfo || {}; let type = commentMediaInfo?.type; const gifFrameUrl = useFetchGifFirstFrame(url); - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); if (type === 'gif' && gifFrameUrl !== null) { type = 'animated gif'; @@ -465,7 +465,7 @@ const PostMedia = ({ const [showThumbnail, setShowThumbnail] = useState(true); const mediaDimensions = getMediaDimensions(commentMediaInfo); - const boardPath = getBoardPath(subplebbitAddress, defaultSubplebbits); + const boardPath = getBoardPath(subplebbitAddress, directories); return (

@@ -528,8 +528,8 @@ const Reply = ({ postReplyCount, reply, roles, threadNumber }: PostProps) => { } const { author, cid, deleted, link, linkHeight, linkWidth, postCid, reason, removed, spoiler, subplebbitAddress, thumbnailUrl, parentCid } = post || {}; - const defaultSubplebbits = useDefaultSubplebbits(); - const boardPath = subplebbitAddress ? getBoardPath(subplebbitAddress, defaultSubplebbits) : undefined; + const directories = useDirectories(); + const boardPath = subplebbitAddress ? getBoardPath(subplebbitAddress, directories) : undefined; const location = useLocation(); const route = boardPath ? `/${boardPath}/thread/${cid}` : `/thread/${cid}`; @@ -591,8 +591,8 @@ const PostDesktop = ({ const isInPostPageView = isPostPageView(location.pathname, params); const isInAllView = isAllView(location.pathname); const isInSubscriptionsView = isSubscriptionsView(location.pathname, params); - const defaultSubplebbits = useDefaultSubplebbits(); - const boardPath = subplebbitAddress ? getBoardPath(subplebbitAddress, defaultSubplebbits) : undefined; + const directories = useDirectories(); + const boardPath = subplebbitAddress ? getBoardPath(subplebbitAddress, directories) : undefined; const { hidden, unhide, hide } = useHide({ cid }); const isHidden = hidden && !isInPostPageView; diff --git a/src/components/post-desktop/post-menu-desktop/post-menu-desktop.tsx b/src/components/post-desktop/post-menu-desktop/post-menu-desktop.tsx index 5dbbfe4c..33bf8269 100644 --- a/src/components/post-desktop/post-menu-desktop/post-menu-desktop.tsx +++ b/src/components/post-desktop/post-menu-desktop/post-menu-desktop.tsx @@ -9,7 +9,7 @@ import { getCommentMediaInfo } from '../../../lib/utils/media-utils'; import { copyShareLinkToClipboard, isValidURL, type ShareLinkType } from '../../../lib/utils/url-utils'; import { copyToClipboard } from '../../../lib/utils/clipboard-utils'; import { getBoardPath } from '../../../lib/utils/route-utils'; -import { useDefaultSubplebbits } from '../../../hooks/use-default-subplebbits'; +import { useDirectories } from '../../../hooks/use-directories'; import { isAllView, isCatalogView, isPostPageView, isSubscriptionsView } from '../../../lib/utils/view-utils'; import useHide from '../../../hooks/use-hide'; import _ from 'lodash'; @@ -21,8 +21,8 @@ type CopyLinkButtonProps = const CopyLinkButton = ({ cid, subplebbitAddress, linkType, onClose }: CopyLinkButtonProps) => { const { t } = useTranslation(); - const defaultSubplebbits = useDefaultSubplebbits(); - const boardIdentifier = getBoardPath(subplebbitAddress, defaultSubplebbits); + const directories = useDirectories(); + const boardIdentifier = getBoardPath(subplebbitAddress, directories); return (
{ diff --git a/src/components/post-form/post-form.tsx b/src/components/post-form/post-form.tsx index d920e83b..2cea55fc 100644 --- a/src/components/post-form/post-form.tsx +++ b/src/components/post-form/post-form.tsx @@ -9,7 +9,7 @@ import { getHasThumbnail, getLinkMediaInfo } from '../../lib/utils/media-utils'; import { formatMarkdown } from '../../lib/utils/post-utils'; import { isValidURL } from '../../lib/utils/url-utils'; import { isAllView, isCatalogView, isModQueueView, isModView, isPostPageView, isSubscriptionsView } from '../../lib/utils/view-utils'; -import { useDefaultSubplebbits } from '../../hooks/use-default-subplebbits'; +import { useDirectories } from '../../hooks/use-directories'; import { useResolvedSubplebbitAddress } from '../../hooks/use-resolved-subplebbit-address'; import useFetchGifFirstFrame from '../../hooks/use-fetch-gif-first-frame'; import useIsSubplebbitOffline from '../../hooks/use-is-subplebbit-offline'; @@ -71,7 +71,7 @@ const PostFormTable = ({ closeForm, postCid }: { closeForm: () => void; postCid: const isInModView = isModView(location.pathname); const isInSubscriptionsView = isSubscriptionsView(location.pathname, useParams()); const subscriptions = account?.subscriptions || []; - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); const { accountSubplebbits } = useAccountSubplebbits(); const accountSubplebbitAddresses = Object.keys(accountSubplebbits); @@ -338,7 +338,7 @@ const PostFormTable = ({ closeForm, postCid }: { closeForm: () => void; postCid: - {subplebbits.map((sub) => { + {communities.map((sub) => { const address = sub.address; if (!address) return null; return ( ); })} @@ -594,7 +593,7 @@ export const ModQueueButton = ({ boardIdentifier, isMobile }: ModQueueButtonProp (state) => { const activeAccountId = state.activeAccountId; const activeAccount = activeAccountId ? state.accounts[activeAccountId] : undefined; - const accountSubplebbits = activeAccount?.subplebbits || {}; + const accountSubplebbits = activeAccount?.communities || {}; return Object.keys(accountSubplebbits); }, (prev, next) => { @@ -603,14 +602,14 @@ export const ModQueueButton = ({ boardIdentifier, isMobile }: ModQueueButtonProp }, ); - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); const resolvedAddress = useMemo(() => { if (boardIdentifier) { - return getSubplebbitAddress(boardIdentifier, defaultSubplebbits); + return getSubplebbitAddress(boardIdentifier, directories); } return undefined; - }, [boardIdentifier, defaultSubplebbits]); + }, [boardIdentifier, directories]); const subplebbitAddresses = useMemo(() => { if (resolvedAddress) { @@ -652,7 +651,7 @@ export const ModQueueView = ({ boardIdentifier: propBoardIdentifier }: ModQueueV (state) => { const activeAccountId = state.activeAccountId; const activeAccount = activeAccountId ? state.accounts[activeAccountId] : undefined; - const accountSubplebbits = activeAccount?.subplebbits || {}; + const accountSubplebbits = activeAccount?.communities || {}; return Object.keys(accountSubplebbits); }, (prev, next) => { @@ -661,18 +660,18 @@ export const ModQueueView = ({ boardIdentifier: propBoardIdentifier }: ModQueueV }, ); - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); const boardIdentifier = propBoardIdentifier || params.boardIdentifier; const resolvedAddress = useMemo(() => { if (boardIdentifier) { - return getSubplebbitAddress(boardIdentifier, defaultSubplebbits); + return getSubplebbitAddress(boardIdentifier, directories); } return undefined; - }, [boardIdentifier, defaultSubplebbits]); + }, [boardIdentifier, directories]); - const subplebbitsWithMetadata = useAccountSubplebbitsWithMetadata(); + const communitiesWithMetadata = useAccountSubplebbitsWithMetadata(); const subplebbitAddresses = useMemo(() => { if (resolvedAddress) { @@ -740,7 +739,7 @@ export const ModQueueView = ({ boardIdentifier: propBoardIdentifier }: ModQueueV {!resolvedAddress && (
- +
)} diff --git a/src/views/not-found/not-found.tsx b/src/views/not-found/not-found.tsx index 82c98fe3..b2a471eb 100644 --- a/src/views/not-found/not-found.tsx +++ b/src/views/not-found/not-found.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import { Link, useLocation } from 'react-router-dom'; import { useSubplebbitField } from '../../hooks/use-stable-subplebbit'; -import { useDefaultSubplebbits } from '../../hooks/use-default-subplebbits'; +import { useDirectories } from '../../hooks/use-directories'; import { getSubplebbitAddress } from '../../lib/utils/route-utils'; import { HomeLogo } from '../home'; import styles from './not-found.module.css'; @@ -18,8 +18,8 @@ const NotFound = () => { // Extract boardIdentifier from pathname (could be directory code or address) const pathParts = location.pathname.split('/').filter(Boolean); const boardIdentifier = pathParts[0] && pathParts[0] !== 'not-found' && pathParts[0] !== 'faq' ? pathParts[0] : ''; - const defaultSubplebbits = useDefaultSubplebbits(); - const subplebbitAddress = boardIdentifier ? getSubplebbitAddress(boardIdentifier, defaultSubplebbits) : ''; + const directories = useDirectories(); + const subplebbitAddress = boardIdentifier ? getSubplebbitAddress(boardIdentifier, directories) : ''; // Only subscribe to address and shortAddress to avoid rerenders from updatingState changes const address = useSubplebbitField(subplebbitAddress, (subplebbit) => subplebbit?.address); const shortAddress = useSubplebbitField(subplebbitAddress, (subplebbit) => subplebbit?.shortAddress); diff --git a/src/views/pending-post/pending-post.tsx b/src/views/pending-post/pending-post.tsx index a381d1c6..dd7d74f0 100644 --- a/src/views/pending-post/pending-post.tsx +++ b/src/views/pending-post/pending-post.tsx @@ -1,7 +1,7 @@ import { useEffect } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { useAccountComment, useAccountComments } from '@plebbit/plebbit-react-hooks'; -import { useDefaultSubplebbits } from '../../hooks/use-default-subplebbits'; +import { useDirectories } from '../../hooks/use-directories'; import { getBoardPath } from '../../lib/utils/route-utils'; import { Post } from '../post'; @@ -11,7 +11,7 @@ const PendingPost = () => { const commentIndex = accountCommentIndex ? parseInt(accountCommentIndex) : undefined; const post = useAccountComment({ commentIndex }); const navigate = useNavigate(); - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); useEffect(() => window.scrollTo(0, 0), []); @@ -31,10 +31,10 @@ const PendingPost = () => { useEffect(() => { if (post?.cid && post?.subplebbitAddress) { - const boardPath = getBoardPath(post.subplebbitAddress, defaultSubplebbits); + const boardPath = getBoardPath(post.subplebbitAddress, directories); navigate(`/${boardPath}/thread/${post.cid}`, { replace: true }); } - }, [post, navigate, defaultSubplebbits]); + }, [post, navigate, directories]); return ; }; diff --git a/src/views/post/post.tsx b/src/views/post/post.tsx index 8f58a58a..e1416051 100644 --- a/src/views/post/post.tsx +++ b/src/views/post/post.tsx @@ -5,7 +5,7 @@ import { useSubplebbitField } from '../../hooks/use-stable-subplebbit'; import { useLocation, useNavigate, useParams } from 'react-router-dom'; import { isAllView } from '../../lib/utils/view-utils'; import { useResolvedSubplebbitAddress } from '../../hooks/use-resolved-subplebbit-address'; -import { useDefaultSubplebbits } from '../../hooks/use-default-subplebbits'; +import { useDirectories } from '../../hooks/use-directories'; import { isDirectoryBoard } from '../../lib/utils/route-utils'; import useIsMobile from '../../hooks/use-is-mobile'; import ErrorDisplay from '../../components/error-display/error-display'; @@ -113,7 +113,7 @@ const PostPage = () => { const subplebbit = useSubplebbit({ subplebbitAddress }); const { error: subplebbitError, shortAddress, title } = subplebbit || {}; - const defaultSubplebbits = useDefaultSubplebbits(); + const directories = useDirectories(); // if the comment is a reply, return the post comment instead, then the reply will be highlighted in the thread const postComment = useComment({ commentCid: comment?.postCid }); @@ -133,7 +133,7 @@ const PostPage = () => { useEffect(() => { const boardIdentifier = params.boardIdentifier; - const isDirectory = boardIdentifier ? isDirectoryBoard(boardIdentifier, defaultSubplebbits) : false; + const isDirectory = boardIdentifier ? isDirectoryBoard(boardIdentifier, directories) : false; let boardTitle: string; if (isInAllView) { @@ -147,7 +147,7 @@ const PostPage = () => { const postTitle = post?.title?.slice(0, 30) || post?.content?.slice(0, 30); const postTitlePart = postTitle ? ` - ${postTitle.trim()}...` : ''; document.title = `${boardTitle}${postTitlePart} - 5chan`; - }, [title, shortAddress, subplebbitAddress, post?.title, post?.content, isInAllView, t, params.boardIdentifier, defaultSubplebbits]); + }, [title, shortAddress, subplebbitAddress, post?.title, post?.content, isInAllView, t, params.boardIdentifier, directories]); const shouldShowCommentError = comment?.error?.message && !comment?.cid; const shouldShowPostError = post?.error && post?.replyCount > 0 && post?.replies?.length === 0; diff --git a/src/views/rules/rules.tsx b/src/views/rules/rules.tsx index f6c69f5c..1736b5bf 100644 --- a/src/views/rules/rules.tsx +++ b/src/views/rules/rules.tsx @@ -1,7 +1,7 @@ import { useEffect, useState, FormEvent } from 'react'; import { useSubplebbit } from '@plebbit/plebbit-react-hooks'; import { Footer, HomeLogo } from '../home'; -import { useDefaultSubplebbits, MultisubSubplebbit } from '../../hooks/use-default-subplebbits'; +import { useDirectories, DirectoryCommunity } from '../../hooks/use-directories'; import styles from './rules.module.css'; const getBoardShortCode = (title?: string): string => { @@ -16,7 +16,7 @@ const getBoardName = (title?: string): string => { return match ? match[1] : title; }; -const BoardRulesDisplay = ({ subplebbitAddress, defaultSubplebbits }: { subplebbitAddress: string; defaultSubplebbits: MultisubSubplebbit[] }) => { +const BoardRulesDisplay = ({ subplebbitAddress, directories }: { subplebbitAddress: string; directories: DirectoryCommunity[] }) => { const subplebbit = useSubplebbit({ subplebbitAddress }); const { rules, state, title, shortAddress } = subplebbit || {}; @@ -42,7 +42,7 @@ const BoardRulesDisplay = ({ subplebbitAddress, defaultSubplebbits }: { subplebb const isLoaded = state === 'succeeded'; - const defaultSub = defaultSubplebbits.find((sub) => sub.address === subplebbitAddress); + const defaultSub = directories.find((sub) => sub.address === subplebbitAddress); let displayTitle: string; if (defaultSub?.title) { const shortCode = getBoardShortCode(defaultSub.title); @@ -87,11 +87,11 @@ const BoardRulesDisplay = ({ subplebbitAddress, defaultSubplebbits }: { subplebb }; const BoardSelector = ({ - defaultSubplebbits, + directories, selectedAddress, onSelect, }: { - defaultSubplebbits: MultisubSubplebbit[]; + directories: DirectoryCommunity[]; selectedAddress: string; onSelect: (address: string) => void; }) => { @@ -121,7 +121,7 @@ const BoardSelector = ({