refactor(modals): split directory modal into separate create board modal

Separate DirectoryModal (for home view placeholders) and CreateBoardModal (for board view create button) into distinct components with their own stores, allowing independent styling and cleaner separation of concerns.
This commit is contained in:
plebeius
2025-11-06 22:20:46 +01:00
parent f44b9aefbb
commit 79dcc73556
10 changed files with 262 additions and 49 deletions
+1 -1
View File
@@ -49,7 +49,7 @@ const BoardsList = ({ multisub }: { multisub: MultisubSubplebbit[] }) => {
// Handler for placeholder board links
const handlePlaceholderClick = (e: React.MouseEvent<HTMLAnchorElement>) => {
e.preventDefault();
openDirectoryModal('placeholder');
openDirectoryModal();
};
if (loading) {
+11
View File
@@ -9,7 +9,9 @@ import PopularThreadsBox from './popular-threads-box';
import BoardsList from './boards-list';
import Version from '../../components/version';
import useDisclaimerModalStore from '../../stores/use-disclaimer-modal-store';
import useDirectoryModalStore from '../../stores/use-directory-modal-store';
import DisclaimerModal from '../../components/disclaimer-modal';
import DirectoryModal from '../../components/directory-modal';
import _ from 'lodash';
// https://github.com/plebbit/lists/blob/master/5chan-multisub.json
@@ -178,14 +180,23 @@ const Home = () => {
const defaultSubplebbits = useDefaultSubplebbits();
const subplebbitAddresses = useDefaultSubplebbitAddresses();
const { subplebbits } = useSubplebbits({ subplebbitAddresses });
const { closeDirectoryModal } = useDirectoryModalStore();
useEffect(() => {
document.title = '5chan';
}, []);
// Close directory modal when navigating away from home
useEffect(() => {
return () => {
closeDirectoryModal();
};
}, [closeDirectoryModal]);
return (
<>
<DisclaimerModal />
<DirectoryModal />
<div className={styles.content}>
<HomeLogo />
<SearchBar />