diff --git a/src/app.tsx b/src/app.tsx index 8c29a94e..c1cf23b5 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -5,7 +5,7 @@ import styles from './app.module.css'; import useTheme from './hooks/use-theme'; import Subplebbit from './views/subplebbit'; import { isHomeView } from './lib/utils/view-utils'; -import TopNav from './components/topnav'; +import BoardNav from './components/board-nav'; const App = () => { const [theme] = useTheme(); @@ -26,7 +26,7 @@ const App = () => { const boardLayout = ( <> - + {/* */} diff --git a/src/components/topnav.module.css b/src/components/board-nav/board-nav.module.css similarity index 53% rename from src/components/topnav.module.css rename to src/components/board-nav/board-nav.module.css index b17d5574..45a90f9c 100644 --- a/src/components/topnav.module.css +++ b/src/components/board-nav/board-nav.module.css @@ -1,7 +1,8 @@ .boardNavDesktop { padding: 5px; - font-size: var(--topnav-font-size); + font-size: var(--boardnav-font-size); + color: var(--boardnav-separator-color); } .boardNavDesktop a { @@ -14,6 +15,23 @@ text-decoration: var(--internal-link-text-decoration-hover); } +.boardNavMobile { + padding: 2px 4px; + background-color: var(--boardnav-mobile-background-color); + border-bottom: var(--boardnav-mobile-border-bottom); + position: fixed; + width: 100%; + font-size: 10px; +} + +.boardNavMobile strong { + padding-right: 5px; +} + +.boardNavMobile select { + font-size: 10px; +} + @media (max-width: 640px) { .boardNavDesktop { display: none; diff --git a/src/components/board-nav/board-nav.tsx b/src/components/board-nav/board-nav.tsx new file mode 100644 index 00000000..74e6516a --- /dev/null +++ b/src/components/board-nav/board-nav.tsx @@ -0,0 +1,62 @@ +import { Link, useNavigate, useParams } from 'react-router-dom'; +import useDefaultSubplebbits from '../../hooks/use-default-subplebbits'; +import styles from './board-nav.module.css'; + +interface BoardNavProps { + subplebbits: any; + currentSubplebbit?: string | undefined; +} + +const BoardNavDesktop = ({ subplebbits }: BoardNavProps) => { + return ( +
+ [ + {subplebbits.map((subplebbit: any, index: number) => ( + + {index === 0 ? null : ' '} + + {subplebbit.address.includes('.') ? subplebbit.address : subplebbit.title || subplebbit.address.slice(0, 10).concat('...')} + + {index !== subplebbits.length - 1 ? ' /' : null} + + ))} + ] +
+ ); +}; + +const BoardNavMobile = ({ subplebbits, currentSubplebbit }: BoardNavProps) => { + const navigate = useNavigate(); + + return ( +
+
+ Board + +
+
+
+ ); +}; + +const BoardNav = () => { + const defaultSubplebbits = useDefaultSubplebbits(); + const subplebbitAddress = useParams().subplebbitAddress; + + return ( + <> + + + + ); +}; + +export default BoardNav; diff --git a/src/components/board-nav/index.ts b/src/components/board-nav/index.ts new file mode 100644 index 00000000..9fe1a732 --- /dev/null +++ b/src/components/board-nav/index.ts @@ -0,0 +1 @@ +export { default } from './board-nav'; diff --git a/src/components/index.ts b/src/components/index.ts deleted file mode 100644 index 6871a43a..00000000 --- a/src/components/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './topnav'; diff --git a/src/components/topnav.tsx b/src/components/topnav.tsx deleted file mode 100644 index 4f1505bb..00000000 --- a/src/components/topnav.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { Link } from 'react-router-dom'; -import useDefaultSubplebbits from '../hooks/use-default-subplebbits'; -import styles from './topnav.module.css'; - -const BoardNavDesktop = ({ subplebbits }: { subplebbits: any }) => { - return ( -
- [ - {subplebbits.map((subplebbit: any, index: number) => ( - - {index === 0 ? null : ' '} - - {subplebbit.address.includes('.') ? subplebbit.address : subplebbit.title || subplebbit.address.slice(0, 10).concat('...')} - - {index !== subplebbits.length - 1 ? ' /' : null} - - ))} - ] -
- ); -}; - -const BoardNavMobile = ({ subplebbits }: { subplebbits: any }) => { - return ( -
-

BoardNavMobile

-
- ); -}; - -const TopNav = () => { - const defaultSubplebbits = useDefaultSubplebbits(); - - return ( - <> - - - - ); -}; - -export default TopNav; diff --git a/src/themes.css b/src/themes.css index 5ecc4bc9..254e021b 100644 --- a/src/themes.css +++ b/src/themes.css @@ -2,6 +2,11 @@ --background-base-color: #ffe; --background-pattern-image: url("/public/assets/background-fade.png"); --background-text-color: #fff; + --boardnav-font-size: 9pt; + --boardnav-separator-color: #b86; + --boardnav-mobile-background-color: #f0e0d6; + --boardnav-mobile-border-bottom: 2px solid #d9c5b7; + --boardnav-mobile-font-size: 11pt; --body-font-color: maroon; --body-font-family: arial, helvetica, sans-serif; --body-font-size: 10pt; @@ -21,14 +26,17 @@ --text-color-on-color2-hover: #c63; --text-color-standard: #000; --text-color-inverse: #fff; - --topnav-font-size: 9pt; - --topnav-separator-color: #b86; } :root .yotsuba-b { --background-base-color: #eef2ff; --background-pattern-image: url("/public/assets/background-fade-blue.png"); --background-text-color: #fff; + --boardnav-font-size: 9pt; + --boardnav-separator-color: #89a; + --boardnav-mobile-background-color: #d6daf0; + --boardnav-mobile-border-bottom: 2px solid #b7c5d9; + --boardnav-mobile-font-size: 11pt; --body-font-color: #000; --body-font-family: arial, helvetica, sans-serif; --body-font-size: 10pt; @@ -48,14 +56,17 @@ --text-color-on-color2-hover: #fff; --text-color-standard: #000; --text-color-inverse: #fff; - --topnav-font-size: 9pt; - --topnav-separator-color: #89a; } :root .futaba { --background-base-color: #ffe; --background-pattern-image: none; --background-text-color: #fff; + --boardnav-font-size: 11pt; + --boardnav-separator-color: none; + --boardnav-mobile-background-color: #f0e0d6; + --boardnav-mobile-border-bottom: 2px solid #d9c5b7; + --boardnav-mobile-font-size: 11pt; --body-font-color: maroon; --body-font-family: times new roman, serif; --body-font-size: 12pt; @@ -75,14 +86,17 @@ --text-color-on-color2-hover: #c63; --text-color-standard: #000; --text-color-inverse: #fff; - --topnav-font-size: 11pt; - --topnav-separator-color: #89a; } :root .burichan { --background-base-color: #eef2ff; --background-pattern-image: none; --background-text-color: #fff; + --boardnav-font-size: 11pt; + --boardnav-separator-color: none; + --boardnav-mobile-background-color: #d6daf0; + --boardnav-mobile-border-bottom: 2px solid #b7c5d9; + --boardnav-mobile-font-size: 11pt; --body-font-color: #000; --body-font-family: times new roman, serif; --body-font-size: 12pt; @@ -102,8 +116,6 @@ --text-color-on-color2-hover: #fff; --text-color-standard: #000; --text-color-inverse: #fff; - --topnav-font-size: 11pt; - --topnav-separator-color: #89a; } @@ -111,6 +123,11 @@ --background-base-color: #1d1f21; --background-pattern-image: none; --background-text-color: #282a2e; + --boardnav-font-size: 9pt; + --boardnav-separator-color: #c5c8c6; + --boardnav-mobile-background-color: #1d1f21; + --boardnav-mobile-border-bottom: 2px solid #282a2e; + --boardnav-mobile-font-size: 11pt; --body-font-color: #c5c8c6; --body-font-family: arial, helvetica, sans-serif; --body-font-size: 10pt; @@ -124,19 +141,20 @@ --text-color-on-color1: #c5c8c6; --text-color-on-color2: #c5c8c6; --text-color-on-color3: #c5c8c6; - --topnav-font-size: 9pt; - --topnav-separator-color: #89a; } :root .photon { --background-base-color: #eee; --background-pattern-image: none; + --boardnav-font-size: 9pt; + --boardnav-separator-color: #333; + --boardnav-mobile-background-color: #ddd; + --boardnav-mobile-border-bottom: 2px solid #ccc; + --boardnav-mobile-font-size: 11pt; --body-font-color: #333; --body-font-family: arial, helvetica, sans-serif; --body-font-size: 10pt; --internal-link-text-color: #f60; --internal-link-text-color-hover: #f30; --text-color: #333; - --topnav-font-size: 9pt; - --topnav-separator-color: #333; } \ No newline at end of file diff --git a/src/views/subplebbit/subplebbit.module.css b/src/views/subplebbit/subplebbit.module.css index 3fe76a44..6b48d171 100644 --- a/src/views/subplebbit/subplebbit.module.css +++ b/src/views/subplebbit/subplebbit.module.css @@ -1,6 +1,6 @@ .debug { position: fixed; - top: 0; + top: 20px; right: 0; padding: 0.5em; }