From 09a7b3247f9f4c3bdea2db3208152e41119c137b Mon Sep 17 00:00:00 2001 From: plebbitor Date: Tue, 21 Mar 2023 11:17:54 +0100 Subject: [PATCH] fix home selectedStyle --- src/App.js | 12 ++++++---- src/components/CaptchaModal.jsx | 2 +- src/components/CatalogLoader.jsx | 2 +- src/components/ImageBanner.jsx | 2 +- src/components/PostLoader.jsx | 2 +- src/components/ReplyModal.jsx | 2 +- src/components/views/Home.jsx | 41 +++++++++++++------------------- src/hooks/useClickForm.js | 2 +- 8 files changed, 30 insertions(+), 35 deletions(-) diff --git a/src/App.js b/src/App.js index 0606f34b..47f38678 100644 --- a/src/App.js +++ b/src/App.js @@ -58,6 +58,7 @@ export default function App() { } = useAppStore(state => state); const location = useLocation(); + const isHomeRoute = location.pathname === "/"; // preload images @@ -70,10 +71,13 @@ export default function App() { // automatic dark mode without interefering with user's selected style useEffect(() => { + + if (isHomeRoute) return; + const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); const isDarkMode = darkModeMediaQuery.matches; - if (isDarkMode) { + if (isDarkMode && !isHomeRoute) { setSelectedStyle('Tomorrow'); setBodyStyle({ background: '#1d1f21 none', @@ -84,7 +88,7 @@ export default function App() { } const darkModeListener = (e) => { - if (e.matches) { + if (e.matches && !isHomeRoute) { setSelectedStyle('Tomorrow'); setBodyStyle({ background: '#1d1f21 none', @@ -100,8 +104,8 @@ export default function App() { return () => { darkModeMediaQuery.removeEventListener('change', darkModeListener); }; - }, []); - + }, [isHomeRoute]); + // fetch default subplebbits useEffect(() => { let didCancel = false; diff --git a/src/components/CaptchaModal.jsx b/src/components/CaptchaModal.jsx index 99de849e..7b76cd07 100644 --- a/src/components/CaptchaModal.jsx +++ b/src/components/CaptchaModal.jsx @@ -303,4 +303,4 @@ const CaptchaModal = ({ isOpen, closeModal, captchaImage }) => { Modal.setAppElement('#root'); -export default CaptchaModal; +export default CaptchaModal; \ No newline at end of file diff --git a/src/components/CatalogLoader.jsx b/src/components/CatalogLoader.jsx index 6a66d35c..e39d7e9c 100644 --- a/src/components/CatalogLoader.jsx +++ b/src/components/CatalogLoader.jsx @@ -48,4 +48,4 @@ const CatalogLoader = () => { ); }; -export default CatalogLoader; +export default CatalogLoader; \ No newline at end of file diff --git a/src/components/ImageBanner.jsx b/src/components/ImageBanner.jsx index 991dc53a..97901974 100644 --- a/src/components/ImageBanner.jsx +++ b/src/components/ImageBanner.jsx @@ -37,4 +37,4 @@ function importAll(r) { return r.keys().map(r); } -export default ImageBanner; +export default ImageBanner; \ No newline at end of file diff --git a/src/components/PostLoader.jsx b/src/components/PostLoader.jsx index fcb70d9b..65871eb5 100644 --- a/src/components/PostLoader.jsx +++ b/src/components/PostLoader.jsx @@ -41,4 +41,4 @@ const PostLoader = () => { ); }; -export default PostLoader; +export default PostLoader; \ No newline at end of file diff --git a/src/components/ReplyModal.jsx b/src/components/ReplyModal.jsx index cea0bea3..14d5f95b 100644 --- a/src/components/ReplyModal.jsx +++ b/src/components/ReplyModal.jsx @@ -291,4 +291,4 @@ const ReplyModal = ({ isOpen, closeModal }) => { Modal.setAppElement('#root'); -export default ReplyModal; +export default ReplyModal; \ No newline at end of file diff --git a/src/components/views/Home.jsx b/src/components/views/Home.jsx index 5b77e538..73278c3f 100644 --- a/src/components/views/Home.jsx +++ b/src/components/views/Home.jsx @@ -1,13 +1,25 @@ -import React, { useState, useEffect } from 'react'; +import React, { useEffect } from 'react'; import useAppStore from '../../useAppStore'; import { Link } from 'react-router-dom'; import { Container, Header, Logo, Page, Search, About, AboutTitle, AboutContent, Boards, BoardsTitle, BoardsContent, Footer } from './styles/Home.styled'; -const Home = ({ setBodyStyle }) => { - const [defaultSubplebbits, setDefaultSubplebbits] = useState([]); - const { setSelectedTitle, setSelectedAddress, setSelectedStyle } = useAppStore(state => state); +const Home = () => { + const { + setBodyStyle, + defaultSubplebbits, + setSelectedAddress, + setSelectedStyle, + setSelectedTitle + } = useAppStore(state => state); + + const handleClick = (title, address) => { + setSelectedTitle(title); + setSelectedAddress(address); + } + + // prevent dark mode useEffect(() => { setBodyStyle({ background: "#ffe url(/assets/fade.png) top repeat-x", @@ -17,28 +29,7 @@ const Home = ({ setBodyStyle }) => { setSelectedStyle("Yotsuba"); }, [setBodyStyle, setSelectedStyle]); - const handleClick = (title, address) => { - setSelectedTitle(title); - setSelectedAddress(address); - } - useEffect(() => { - let didCancel = false; - fetch( - "https://raw.githubusercontent.com/plebbit/temporary-default-subplebbits/master/subplebbits.json", - { cache: "no-cache" } - ) - .then((res) => res.json()) - .then(res => { - if (!didCancel) { - setDefaultSubplebbits(res); - } - }); - return () => { - didCancel = true; - }; - }, []); - return (
diff --git a/src/hooks/useClickForm.js b/src/hooks/useClickForm.js index a69857ca..ef498237 100644 --- a/src/hooks/useClickForm.js +++ b/src/hooks/useClickForm.js @@ -29,4 +29,4 @@ const useClickForm = () => { return handleClickForm; }; -export default useClickForm; +export default useClickForm; \ No newline at end of file