feat(topbar): add customizable visibility controls for directories and subscriptions

This commit is contained in:
plebeius
2025-11-07 18:20:11 +01:00
parent bae3d76c6f
commit 669bb5b181
16 changed files with 767 additions and 46 deletions
@@ -14,9 +14,9 @@
top: 50px;
left: 50%;
margin-left: -151px;
background-color: rgb(255, 255, 255);
border: 1px solid rgb(136, 0, 0);
color: rgb(136, 0, 0);
background-color: var(--disclaimer-modal-background-color, rgb(255, 255, 255));
border: var(--disclaimer-modal-border, 1px solid rgb(136, 0, 0));
color: var(--disclaimer-modal-text-color, rgb(136, 0, 0));
box-shadow: rgba(0, 0, 0, 0.1) 2px 2px 0px 1px;
font-family: arial, helvetica, clean, sans-serif;
font-size: 13px;
@@ -26,8 +26,8 @@
.hd {
position: relative;
background-color: rgb(136, 0, 0);
color: rgb(255, 255, 255);
background-color: var(--disclaimer-modal-header-background-color, rgb(136, 0, 0));
color: var(--disclaimer-modal-header-text-color, rgb(255, 255, 255));
padding: 4px 6px;
display: flex;
justify-content: space-between;
@@ -70,7 +70,7 @@
}
.bd a {
color: rgb(136, 0, 0);
color: var(--disclaimer-modal-text-color, rgb(136, 0, 0));
text-decoration: underline;
}
@@ -1,10 +1,12 @@
import { useNavigate } from 'react-router-dom';
import useDisclaimerModalStore from '../../stores/use-disclaimer-modal-store';
import useDirectoryModalStore from '../../stores/use-directory-modal-store';
import styles from './disclaimer-modal.module.css';
const DisclaimerModal = () => {
const navigate = useNavigate();
const { showModal, closeDisclaimerModal, acceptDisclaimer } = useDisclaimerModalStore();
const { showModal, closeDisclaimerModal, acceptDisclaimer, targetBoardPath } = useDisclaimerModalStore();
const { openDirectoryModal } = useDirectoryModalStore();
if (!showModal) {
return null;
@@ -17,7 +19,13 @@ const DisclaimerModal = () => {
};
const handleAccept = () => {
acceptDisclaimer(navigate);
// If there's no board path (placeholder), show directory modal instead
if (!targetBoardPath) {
closeDisclaimerModal();
openDirectoryModal();
} else {
acceptDisclaimer(navigate);
}
};
return (