create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
30 lines (24 loc) • 588 B
Flow
/* @flow */
import * as React from 'react';
export type ThemeProviderType<T> = React.ComponentType<{
children: React.Node,
theme?: T,
}>;
function createThemeProvider<T>(
defaultTheme: T,
ThemeContext: React.Context<T>
): ThemeProviderType<T> {
return class ThemeProvider extends React.Component<*> {
static defaultProps = {
theme: defaultTheme,
};
render() {
return (
<ThemeContext.Provider value={this.props.theme}>
{this.props.children}
</ThemeContext.Provider>
);
}
};
}
export default createThemeProvider;