diff --git a/src/components/Header/Header.js b/src/components/Header/Header.js index 5096b63..98b7334 100644 --- a/src/components/Header/Header.js +++ b/src/components/Header/Header.js @@ -3,12 +3,11 @@ import { useLocation } from "@reach/router" import PropTypes from "prop-types" import { Link } from "gatsby" import useSiteMetadataQuery from "../../hooks/useSiteMetadataQuery" +import ThemeSwitcher from './ThemeSwitcher/ThemeSwitcher' import LogoIcon from "../../images/logo-icon.svg" import TelegramIcon from "../../images/telegram-icon.svg" import TwitterIcon from "../../images/twitter-icon.svg" -import MoonIcon from "../../images/moon-icon.svg" -import SunIcon from "../../images/sun-icon.svg" const Header = () => { const { @@ -20,17 +19,15 @@ const Header = () => { } = useSiteMetadataQuery() const [isScrolled, setIsScrolled] = React.useState(false) const [isMobileOpen, setIsMobileOpen] = React.useState(false) - const [isDark, setIsDark] = React.useState(false) const { pathname } = useLocation() React.useEffect(() => { - setIsDark(window.__isDarkTheme) isMobileOpen ? (document.body.style.overflowY = "hidden") : (document.body.style.overflowY = "") document.body.onscroll = () => window.pageYOffset >= 100 ? setIsScrolled(true) : setIsScrolled(false) - }, [setIsDark, isMobileOpen]) + }, [isMobileOpen]) const mobileHandler = () => { setIsMobileOpen(!isMobileOpen) @@ -74,23 +71,7 @@ const Header = () => {
-
- {isDark ? ( - { - window.__setTheme("light") - setIsDark(!isDark) - }} - /> - ) : ( - { - window.__setTheme("dark") - setIsDark(!isDark) - }} - /> - )} -
+
{ + const [ready, setReady] = React.useState(false) + const [isDark, setIsDark] = React.useState(false) + + React.useEffect(() => { + setIsDark(window.__isDarkTheme) + setReady(true) + }, [setIsDark, setReady]) + + return ( +
+ {isDark ? ( + { + window.__setTheme("light") + setIsDark(!isDark) + }} + /> + ) : ( + { + window.__setTheme("dark") + setIsDark(!isDark) + }} + /> + )} +
+ ) +} + +export default ThemeSwitcher \ No newline at end of file