UNPKG

1.32 kBTypeScriptView Raw
1import React from 'react';
2import { FullTheme, Theme } from './theme';
3declare type RecursivePartial<T> = {
4 [P in keyof T]?: RecursivePartial<T[P]>;
5};
6export interface ThemeProps<T> {
7 theme: Theme<T>;
8 updateTheme: (updates: RecursivePartial<FullTheme>) => void;
9 replaceTheme: (updates: RecursivePartial<FullTheme>) => void;
10}
11export declare const ThemeContext: React.Context<ThemeProps<{}>>;
12export declare type ThemeProviderProps = {
13 useDark?: boolean;
14};
15declare type ThemeProviderState = {
16 theme: Theme;
17 useDark: boolean;
18};
19export default class ThemeProvider extends React.Component<ThemeProviderProps, ThemeProviderState> {
20 static defaultProps: {
21 theme: {};
22 useDark: boolean;
23 };
24 defaultTheme: Partial<FullTheme>;
25 constructor(props: {
26 theme: Theme;
27 useDark?: boolean;
28 });
29 static getDerivedStateFromProps(props: {
30 theme: Theme;
31 useDark?: boolean;
32 }, state: ThemeProviderState): {
33 theme: FullTheme;
34 useDark: boolean;
35 };
36 updateTheme: (updates: RecursivePartial<FullTheme>) => void;
37 replaceTheme: (theme: RecursivePartial<FullTheme>) => void;
38 getTheme: () => Partial<FullTheme>;
39 render(): JSX.Element;
40}
41export declare const ThemeConsumer: React.Consumer<ThemeProps<{}>>;
42export {};