import React, { useMemo } from 'react' import { css, DefaultTheme, ThemeProvider as StyledComponentsThemeProvider, } from 'styled-components' import { useIsDarkMode } from '../state/user/hooks' import colors from './overrides/colors' import { MEDIA_WIDTHS, mediaWidthTemplates } from './overrides/breakpoints' export { MEDIA_WIDTHS, colors } export * from './overrides/typography'; export * from './components' export * from './overrides/global.style' export function theme(darkMode: boolean): DefaultTheme { return { ...colors(darkMode), grids: { sm: 8, md: 12, lg: 24, }, //shadows shadow1: darkMode ? '#000' : '#2F80ED', // media queries mediaWidth: mediaWidthTemplates, // css snippets flexColumnNoWrap: css` display: flex; flex-flow: column nowrap; `, flexRowNoWrap: css` display: flex; flex-flow: row nowrap; `, } } export default function ThemeProvider({ children }: { children: React.ReactNode }) { const darkMode = useIsDarkMode() const themeObject = useMemo(() => theme(darkMode), [darkMode]) return {children} }