import * as React from 'react' import _ from 'lodash/fp' import { Box, ChakraProvider, extendTheme, useColorModeValue, VStack, } from '@chakra-ui/react' import { setupHashScroll } from './utils/scroll' import { Doc } from './types/Doc' // Components import Home from './components/Home' import { PageHeader } from './components/header/Header' import { Changelog } from './components/Changelog' import { TagDocs } from './components/TagDocs' import { MethodBox } from './components/MethodBox' import { Sidebar } from './components/Sidebar' // Data import docs from './data/docs.json' import tagDocs from './data/tag-docs.json' import tests from './data/tests.json' import { ResponsiveBasicLayout } from './components/GSSinglePageLayout/ResponsiveBasicLayout' // Stamp tests on docs _.each((doc) => { doc.tests = tests[doc.name] }, docs as Doc[]) let theme = extendTheme({ fonts: { heading: 'Lato, system-ui, sans-serif', body: 'Lato, system-ui, sans-serif', }, colors: { icon: { dark: '#13161C', light: '#D9E1E9', }, inputBack: { dark: '#282B35', light: '#E9F0F5', }, headerBack: { dark: '#rgba(26, 29, 38, 0.8)', light: '#rgba(26, 29, 38, 0.8)', }, contentBack: { dark: '#1A202C', light: 'white', }, hamburgerMenu: { dark: 'rgb(57,64,76)', light: 'rgb(57,64,76)', }, }, components: { Heading: { sizes: { md: { fontFamily: 'Fira Code, monospace', }, lg: { fontFamily: 'Fira Code, monospace', }, sm: { fontFamily: 'Lato, system-ui, sans-serif', }, }, }, }, }) //inputback = let headerHeight = 75 //Responsive definitions const functionViewResponsive = { main: { padding: [1, 8], }, signature: { styling: { colStart: [0, 0, 0, 5], colSpan: [12, 12, 12, 6], rowStart: [2, 2, 2, 1], }, }, } const headerResponsive = { nav: { iconText: { base: 'inherit', lg: 'none' }, showMobileFilter: { sm: 'inherit', md: 'none' }, showHamburgerMenu: { base: 'flex', lg: 'none' }, showDesktopIcons: { base: 'none', lg: 'flex' }, showDesktopInputs: { base: 'none', md: 'inherit' }, showMobileInputs: { base: 'inherit' }, }, } const sidebarResponsive = { showDesktopBar: { display: { base: 'none', md: 'inherit' }, colSpan: { base: 0, md: 4, lg: 3 }, }, } const mainContentResponsive = { resizeMainContent: { base: 12, md: 8, lg: 9 }, padding: { base: '12px', sm: '24px', md: '32px' }, } const responsiveStyle = { mainContentResponsive, sidebarResponsive, headerResponsive, functionViewResponsive, } let MainContent = React.memo(() => { return ( {_.map( (doc) => ( ), docs )} ) }) function getHeaderContent(page, state, dispatch) { return page !== 'home' ? ( ) : ( false ) } function getMainContent(page, dispatch) { let mainContent = {} if (page === 'changelog') { mainContent = ( ) } else if (['docs', 'search'].includes(page)) { mainContent = } else if (page === 'home') { mainContent = } return mainContent } function getSideBarContent(page, state) { return ['docs', 'search'].includes(page) === true ? ( ) : ( <> ) } let initialState = { input: '', output: '', search: '', isModalSearch: false, page: 'home', } export const App = () => { React.useEffect(setupHashScroll, []) let [state, dispatch]: any = React.useReducer(_.merge, initialState) let { page } = state return ( ) }