2025-11-06 16:23:55 +01:00
|
|
|
import useDirectoryModalStore from '../../stores/use-directory-modal-store';
|
|
|
|
|
import styles from './directory-modal.module.css';
|
|
|
|
|
|
|
|
|
|
const DirectoryModal = () => {
|
2025-11-06 22:20:46 +01:00
|
|
|
const { showModal, closeDirectoryModal } = useDirectoryModalStore();
|
2025-11-06 16:23:55 +01:00
|
|
|
|
|
|
|
|
if (!showModal) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const handleBackdropClick = (e: React.MouseEvent<HTMLDivElement>) => {
|
|
|
|
|
if (e.target === e.currentTarget) {
|
|
|
|
|
closeDirectoryModal();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className={styles.backdrop} onClick={handleBackdropClick}>
|
|
|
|
|
<div className={styles.directoryDialog}>
|
|
|
|
|
<div className={styles.hd}>
|
2025-11-06 22:20:46 +01:00
|
|
|
<h2>Submit a Board to a Directory</h2>
|
2025-11-06 16:23:55 +01:00
|
|
|
<button className={styles.closeButton} onClick={closeDirectoryModal} title='Close' />
|
|
|
|
|
</div>
|
|
|
|
|
<div className={styles.bd}>
|
2025-11-06 22:20:46 +01:00
|
|
|
<p className={styles.introMessage}>
|
|
|
|
|
<strong>The board you clicked on doesn't exist yet, but it can be yours!</strong>
|
|
|
|
|
</p>
|
2025-11-06 16:23:55 +01:00
|
|
|
|
2025-11-06 22:20:46 +01:00
|
|
|
<div className={styles.section}>
|
|
|
|
|
<h3>Directory vs Regular Board</h3>
|
|
|
|
|
<p>
|
|
|
|
|
A "directory board" is assigned to a category on the homepage (like "Anime & Manga" or "Video Games"). Directory assignments
|
|
|
|
|
are temporary and handpicked by devs until DAO curation is implemented.{' '}
|
|
|
|
|
<strong>Anyone can create a board and users can access it anytime using its address</strong>—use the search bar, direct links, or the
|
|
|
|
|
"[Subscribe]" button to access boards regardless of directory assignment.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
2025-11-06 16:23:55 +01:00
|
|
|
|
|
|
|
|
<div className={styles.section}>
|
2025-11-06 17:15:13 +01:00
|
|
|
<h3>Creating Your Board</h3>
|
2025-11-06 16:23:55 +01:00
|
|
|
<p>
|
2025-11-06 17:15:13 +01:00
|
|
|
Create a board using the{' '}
|
2025-11-06 16:23:55 +01:00
|
|
|
<a href='https://plebbit.github.io/docs/learn/clients/5chan/create-a-board' target='_blank' rel='noopener noreferrer'>
|
|
|
|
|
Seedit GUI client
|
|
|
|
|
</a>{' '}
|
2025-11-06 17:15:13 +01:00
|
|
|
or{' '}
|
2025-11-06 16:23:55 +01:00
|
|
|
<a href='https://github.com/plebbit/plebbit-cli' target='_blank' rel='noopener noreferrer'>
|
2025-11-06 17:15:13 +01:00
|
|
|
plebbit-cli
|
2025-11-06 16:23:55 +01:00
|
|
|
</a>
|
2025-11-06 17:15:13 +01:00
|
|
|
. <strong>Build a following:</strong> Users can subscribe to your board via the "[Subscribe]" button, which adds it to their top bar. You can gain
|
|
|
|
|
subscribers through direct links, word of mouth, or search—no directory assignment or dev approval needed.
|
2025-11-06 16:23:55 +01:00
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
2025-11-06 22:20:46 +01:00
|
|
|
<div className={styles.section}>
|
|
|
|
|
<h3>Directory Requirements</h3>
|
|
|
|
|
<p>
|
|
|
|
|
Boards need 99% uptime (they're P2P nodes), plus be active, well-moderated, and relevant to the category. Devs review and approve/reject based on these
|
|
|
|
|
criteria.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
2025-11-06 17:07:26 +01:00
|
|
|
|
2025-11-06 16:23:55 +01:00
|
|
|
<div className={styles.section}>
|
2025-11-06 17:15:13 +01:00
|
|
|
<h3>Submitting to a Directory</h3>
|
2025-11-06 16:23:55 +01:00
|
|
|
<p>
|
2025-11-06 17:15:13 +01:00
|
|
|
Open a PR editing{' '}
|
2025-11-06 16:23:55 +01:00
|
|
|
<a href='https://github.com/plebbit/lists/blob/master/5chan-multisub.json' target='_blank' rel='noopener noreferrer'>
|
2025-11-06 17:15:13 +01:00
|
|
|
5chan-multisub.json
|
2025-11-06 17:07:26 +01:00
|
|
|
</a>{' '}
|
2025-11-06 17:15:13 +01:00
|
|
|
with your board's title, address, and NSFW status. Devs will review and merge if approved. 99% uptime is required.
|
2025-11-06 17:07:26 +01:00
|
|
|
</p>
|
2025-11-06 16:23:55 +01:00
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className={styles.section}>
|
2025-11-06 17:15:13 +01:00
|
|
|
<h3>Future: DAO Voting</h3>
|
2025-11-06 16:23:55 +01:00
|
|
|
<p>
|
2025-11-06 17:15:13 +01:00
|
|
|
Directory assignments will use gasless pubsub voting—communities vote, highest-voted board wins the slot. <strong>Voting pages = discovery:</strong> Each
|
|
|
|
|
directory's voting page lists all competing boards (even low-voted ones), giving visibility without winning or dev approval. See{' '}
|
|
|
|
|
<a href='https://github.com/plebbit/plebbit-js/issues/25' target='_blank' rel='noopener noreferrer'>
|
|
|
|
|
design draft
|
|
|
|
|
</a>
|
|
|
|
|
.
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className={styles.section}>
|
|
|
|
|
<h3>Decentralization</h3>
|
|
|
|
|
<p>
|
|
|
|
|
Devs can change directories via commits in the open-source repo. No centralized servers—anyone can fork, modify, and redeploy to their own domain. 5chan is
|
|
|
|
|
adminless with no central authority.
|
2025-11-06 16:23:55 +01:00
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className={styles.directoryFooter}>
|
|
|
|
|
<button onClick={closeDirectoryModal}>Close</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default DirectoryModal;
|