diff options
Diffstat (limited to 'src/view/lib/ThemeContext.tsx')
-rw-r--r-- | src/view/lib/ThemeContext.tsx | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/view/lib/ThemeContext.tsx b/src/view/lib/ThemeContext.tsx deleted file mode 100644 index 16a7d9cb3..000000000 --- a/src/view/lib/ThemeContext.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import React, {createContext, useContext, useMemo} from 'react' -import {TextStyle, useColorScheme, ViewStyle} from 'react-native' -import {darkTheme, defaultTheme} from './themes' - -export type ColorScheme = 'light' | 'dark' - -export type PaletteColorName = - | 'default' - | 'primary' - | 'secondary' - | 'inverted' - | 'error' -export type PaletteColor = { - background: string - backgroundLight: string - text: string - textLight: string - textInverted: string - link: string - border: string - borderDark: string - icon: string - [k: string]: string -} -export type Palette = Record<PaletteColorName, PaletteColor> - -export type ShapeName = 'button' | 'bigButton' | 'smallButton' -export type Shapes = Record<ShapeName, ViewStyle> - -export type TypographyVariant = - | 'xl-thin' - | 'xl' - | 'xl-medium' - | 'xl-bold' - | 'xl-heavy' - | 'lg-thin' - | 'lg' - | 'lg-medium' - | 'lg-bold' - | 'lg-heavy' - | 'md-thin' - | 'md' - | 'md-medium' - | 'md-bold' - | 'md-heavy' - | 'sm-thin' - | 'sm' - | 'sm-medium' - | 'sm-bold' - | 'sm-heavy' - | 'xs-thin' - | 'xs' - | 'xs-medium' - | 'xs-bold' - | 'xs-heavy' - | 'title-xl' - | 'title-lg' - | 'title' - | 'title-sm' - | 'post-text-lg' - | 'post-text' - | 'button' - | 'mono' -export type Typography = Record<TypographyVariant, TextStyle> - -export interface Theme { - colorScheme: ColorScheme - palette: Palette - shapes: Shapes - typography: Typography -} - -export interface ThemeProviderProps { - theme?: ColorScheme -} - -export const ThemeContext = createContext<Theme>(defaultTheme) - -export const useTheme = () => useContext(ThemeContext) - -export const ThemeProvider: React.FC<ThemeProviderProps> = ({ - theme, - children, -}) => { - const colorScheme = useColorScheme() - - const value = useMemo( - () => ((theme || colorScheme) === 'dark' ? darkTheme : defaultTheme), - [colorScheme, theme], - ) - - return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider> -} |