From 5fa3424be69640d841c5b0e5f05c260b3a00e7f0 Mon Sep 17 00:00:00 2001 From: Satyajit Sahoo Date: Wed, 22 May 2019 08:22:56 +0200 Subject: [PATCH] refactor: drop wrapper provider for components wrapped in withTheme (#44) BREAKING CHANGE: Previously if the theme differed from the one in context, we wrapped the component in a provider as well. However, most components don't need it and it can be confusing when trying to override the theme for only specific component. This commit drops this extra wrapper. The old behaviour can still be achieved by explicitly using a `ThemeProvider` instead of a `theme` prop. --- src/createWithTheme.js | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/createWithTheme.js b/src/createWithTheme.js index 13cd668..812dcb2 100644 --- a/src/createWithTheme.js +++ b/src/createWithTheme.js @@ -41,23 +41,13 @@ const createWithTheme = >( return ( - {theme => { - const merged = this._merge(theme, rest.theme); - const element = ( - - ); - - if (rest.theme && merged !== rest.theme) { - // If a theme prop was passed, expose it to the children - return {element}; - } - - return element; - }} + {theme => ( + + )} ); }