diff --git a/beta/src/components/Layout/Nav/MobileNav.tsx b/beta/src/components/Layout/Nav/MobileNav.tsx index a6b6cc919b0..90ed70e0d28 100644 --- a/beta/src/components/Layout/Nav/MobileNav.tsx +++ b/beta/src/components/Layout/Nav/MobileNav.tsx @@ -4,9 +4,9 @@ import * as React from 'react'; import cn from 'classnames'; -import {RouteItem} from 'components/Layout/useRouteMeta'; -import {useRouter} from 'next/router'; -import {SidebarRouteTree} from '../Sidebar'; +import { RouteItem } from 'components/Layout/useRouteMeta'; +import { useRouter } from 'next/router'; +import { SidebarRouteTree } from '../Sidebar'; import sidebarHome from '../../../sidebarHome.json'; import sidebarLearn from '../../../sidebarLearn.json'; import sidebarReference from '../../../sidebarReference.json'; @@ -22,7 +22,7 @@ function inferSection(pathname: string): 'learn' | 'reference' | 'home' { } export function MobileNav() { - const {pathname} = useRouter(); + const { pathname } = useRouter(); const [section, setSection] = React.useState(() => inferSection(pathname)); let tree = null; @@ -40,7 +40,7 @@ export function MobileNav() { return ( <> -
+
setSection('home')}> diff --git a/beta/src/components/Layout/Nav/Nav.tsx b/beta/src/components/Layout/Nav/Nav.tsx index af8f2066ba7..e938eaeddde 100644 --- a/beta/src/components/Layout/Nav/Nav.tsx +++ b/beta/src/components/Layout/Nav/Nav.tsx @@ -5,15 +5,15 @@ import * as React from 'react'; import cn from 'classnames'; import NextLink from 'next/link'; -import {useRouter} from 'next/router'; +import { useRouter } from 'next/router'; -import {IconClose} from 'components/Icon/IconClose'; -import {IconHamburger} from 'components/Icon/IconHamburger'; -import {Search} from 'components/Search'; -import {MenuContext} from 'components/useMenu'; - -import {Logo} from '../../Logo'; +import { IconClose } from 'components/Icon/IconClose'; +import { IconHamburger } from 'components/Icon/IconHamburger'; +import { Search } from 'components/Search'; +import { MenuContext } from 'components/useMenu'; +import { Logo } from '../../Logo'; import NavLink from './NavLink'; +import { ColorMode, ThemeContext } from 'modules/ThemeProvider'; const feedbackIcon = ( { - if (typeof document === 'undefined') { - return false; - } - return document.documentElement.classList.contains('dark'); - }); + + // get the current colorMode + const { colorMode, setColorMode } = React.useContext(ThemeContext); + const section = inferSection(pathname); + const toggleColorMode = React.useCallback(() => { + setColorMode(colorMode === ColorMode.dark ? ColorMode.light : ColorMode.dark) + }, [colorMode]) + function handleFeedback() { const nodes: any = document.querySelectorAll( '#_hj_feedback_container button' @@ -115,7 +116,7 @@ export default function Nav() { } return ( -
@@ -174,20 +167,12 @@ export default function Nav() {
); -} +} \ No newline at end of file diff --git a/beta/src/components/Layout/Page.tsx b/beta/src/components/Layout/Page.tsx index 7cbf2505260..700114b84ec 100644 --- a/beta/src/components/Layout/Page.tsx +++ b/beta/src/components/Layout/Page.tsx @@ -2,22 +2,22 @@ * Copyright (c) Facebook, Inc. and its affiliates. */ -import {MenuProvider} from 'components/useMenu'; +import { MenuProvider } from 'components/useMenu'; import * as React from 'react'; -import {Nav} from './Nav'; -import {RouteItem, SidebarContext} from './useRouteMeta'; -import {Sidebar} from './Sidebar'; -import {Footer} from './Footer'; +import { Nav } from './Nav'; +import { RouteItem, SidebarContext } from './useRouteMeta'; +import { Sidebar } from './Sidebar'; +import { Footer } from './Footer'; interface PageProps { children: React.ReactNode; routeTree: RouteItem; } -export function Page({routeTree, children}: PageProps) { +export function Page({ routeTree, children }: PageProps) { return ( -
+