revise & simplify theme determination

This commit is contained in:
Evan Jacobs
2019-06-24 20:14:12 -05:00
parent 9497763511
commit 1fbd24855f

View File

@@ -5,11 +5,6 @@ type Props = {
theme?: any,
};
export default (props: Props, fallbackTheme: any, defaultProps: any = EMPTY_OBJECT) => {
// Props should take precedence over ThemeProvider, which should take precedence over
// defaultProps, but React automatically puts defaultProps on props.
const isDefaultTheme = defaultProps ? props.theme === defaultProps.theme : false;
const theme = props.theme && !isDefaultTheme ? props.theme : fallbackTheme || defaultProps.theme;
return theme;
export default (props: Props, providedTheme: any, defaultProps: any = EMPTY_OBJECT) => {
return (props.theme !== defaultProps.theme && props.theme) || providedTheme || defaultProps.theme;
};