This commit is contained in:
Sergey Yarkov 2020-07-22 03:01:59 +03:00
parent aaed77eed1
commit 2a969a2642
4 changed files with 21 additions and 27 deletions

View File

@ -1,6 +1,6 @@
import "firebase/database" import "firebase/database"
import React from 'react'; import React from "react"
import Layout from './src/components/Layout/Layout' import Layout from "./src/components/Layout/Layout"
import "gatsby-remark-vscode/styles.css" import "gatsby-remark-vscode/styles.css"
@ -29,5 +29,5 @@ export const shouldUpdateScroll = ({ routerProps: { location } }) => {
} }
export const wrapPageElement = ({ element, props }) => { export const wrapPageElement = ({ element, props }) => {
return <Layout {...props}>{element}</Layout>; return <Layout {...props}>{element}</Layout>
}; }

View File

@ -1,6 +1,6 @@
import "firebase/database" import "firebase/database"
import React from "react" import React from "react"
import Layout from './src/components/Layout/Layout' import Layout from "./src/components/Layout/Layout"
const OnDark = () => { const OnDark = () => {
return ( return (
@ -44,5 +44,5 @@ export const onRenderBody = ({ setPreBodyComponents }) => {
} }
export const wrapPageElement = ({ element, props }) => { export const wrapPageElement = ({ element, props }) => {
return <Layout {...props}>{element}</Layout>; return <Layout {...props}>{element}</Layout>
}; }

View File

@ -3,7 +3,7 @@ import { useLocation } from "@reach/router"
import PropTypes from "prop-types" import PropTypes from "prop-types"
import { Link } from "gatsby" import { Link } from "gatsby"
import useSiteMetadataQuery from "../../hooks/useSiteMetadataQuery" import useSiteMetadataQuery from "../../hooks/useSiteMetadataQuery"
import ThemeSwitcher from './ThemeSwitcher/ThemeSwitcher' import ThemeSwitcher from "./ThemeSwitcher/ThemeSwitcher"
import LogoIcon from "../../images/logo-icon.svg" import LogoIcon from "../../images/logo-icon.svg"
import TelegramIcon from "../../images/telegram-icon.svg" import TelegramIcon from "../../images/telegram-icon.svg"
@ -21,19 +21,13 @@ const Header = () => {
const [isMobileOpen, setIsMobileOpen] = React.useState(false) const [isMobileOpen, setIsMobileOpen] = React.useState(false)
const { pathname } = useLocation() const { pathname } = useLocation()
const [ready, setReady] = React.useState(false)
const [isDark, setIsDark] = React.useState(false)
React.useEffect(() => { React.useEffect(() => {
setIsDark(window.__isDarkTheme)
setReady(true)
isMobileOpen isMobileOpen
? (document.body.style.overflowY = "hidden") ? (document.body.style.overflowY = "hidden")
: (document.body.style.overflowY = "") : (document.body.style.overflowY = "")
document.body.onscroll = () => document.body.onscroll = () =>
window.pageYOffset >= 100 ? setIsScrolled(true) : setIsScrolled(false) window.pageYOffset >= 100 ? setIsScrolled(true) : setIsScrolled(false)
}, [isMobileOpen, setIsDark, setReady]) }, [isMobileOpen])
const mobileHandler = () => { const mobileHandler = () => {
setIsMobileOpen(!isMobileOpen) setIsMobileOpen(!isMobileOpen)
@ -77,7 +71,7 @@ const Header = () => {
<div className="header-nav__links"> <div className="header-nav__links">
<nav>{renderLinks()}</nav> <nav>{renderLinks()}</nav>
</div> </div>
<ThemeSwitcher ready={ready} isDark={isDark} setIsDark={setIsDark} /> <ThemeSwitcher />
</div> </div>
<div <div
className={ className={

View File

@ -1,19 +1,19 @@
import React from 'react'; import React from "react"
import MoonIcon from "../../../images/moon-icon.svg" import MoonIcon from "../../../images/moon-icon.svg"
import SunIcon from "../../../images/sun-icon.svg" import SunIcon from "../../../images/sun-icon.svg"
const ThemeSwitcher = ({ ready, isDark, setIsDark }) => { const ThemeSwitcher = () => {
// const [ready, setReady] = React.useState(false) const [ready, setReady] = React.useState(false)
// const [isDark, setIsDark] = React.useState(false) const [isDark, setIsDark] = React.useState(false)
// React.useEffect(() => { React.useEffect(() => {
// setIsDark(window.__isDarkTheme) setIsDark(window.__isDarkTheme)
// setReady(true) setReady(true)
// }, [setIsDark, setReady]) }, [setIsDark, setReady])
return ( return (
<div className={ready ? 'header-nav__theme ready' : 'header-nav__theme'}> <div className={ready ? "header-nav__theme ready" : "header-nav__theme"}>
{isDark ? ( {isDark ? (
<SunIcon <SunIcon
onClick={() => { onClick={() => {
@ -33,4 +33,4 @@ const ThemeSwitcher = ({ ready, isDark, setIsDark }) => {
) )
} }
export default ThemeSwitcher export default ThemeSwitcher