From 4172fa8c8e0d7bb52fb9598e7da45f1b4df51c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benoi=CC=82t=20Rouleau?= Date: Fri, 14 Feb 2020 00:28:18 -0500 Subject: [PATCH 1/2] Add mapTheme argument to createUtilityPlugin() + provide convertDefaultKey helper --- src/plugins/transitionProperty.js | 4 ++-- src/util/createUtilityPlugin.js | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/plugins/transitionProperty.js b/src/plugins/transitionProperty.js index 7d55bc1380a1..5dac4d227293 100644 --- a/src/plugins/transitionProperty.js +++ b/src/plugins/transitionProperty.js @@ -1,5 +1,5 @@ -import createUtilityPlugin from '../util/createUtilityPlugin' +import createUtilityPlugin, { convertDefaultKey } from '../util/createUtilityPlugin' export default function() { - return createUtilityPlugin('transitionProperty', [['transition', ['transitionProperty']]]) + return createUtilityPlugin('transitionProperty', [['transition', ['transitionProperty']]], convertDefaultKey) } diff --git a/src/util/createUtilityPlugin.js b/src/util/createUtilityPlugin.js index b2b7676643f1..c6c1d96f9d2b 100644 --- a/src/util/createUtilityPlugin.js +++ b/src/util/createUtilityPlugin.js @@ -1,9 +1,10 @@ +import _ from 'lodash' import fromPairs from 'lodash/fromPairs' import toPairs from 'lodash/toPairs' import castArray from 'lodash/castArray' function className(classPrefix, key) { - if (key === 'default') { + if (key === '') { return classPrefix } @@ -14,11 +15,11 @@ function className(classPrefix, key) { return `${classPrefix}-${key}` } -export default function createUtilityPlugin(themeKey, utilityVariations) { +export default function createUtilityPlugin(themeKey, utilityVariations, mapTheme = theme => theme) { return function({ e, addUtilities, variants, theme }) { const utilities = utilityVariations.map(([classPrefix, properties]) => { return fromPairs( - toPairs(theme(themeKey)).map(([key, value]) => { + toPairs(mapTheme(theme(themeKey))).map(([key, value]) => { return [ `.${e(className(classPrefix, key))}`, fromPairs(castArray(properties).map(property => [property, value])), @@ -29,3 +30,7 @@ export default function createUtilityPlugin(themeKey, utilityVariations) { return addUtilities(utilities, variants(themeKey)) } } + +export function convertDefaultKey(theme) { + return _.mapKeys(theme, (value, key) => key === 'default' ? '' : key) +} From 2e1034d4c84c4493b70efd82dbaff522c1989114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benoi=CC=82t=20Rouleau?= Date: Fri, 14 Feb 2020 00:43:29 -0500 Subject: [PATCH 2/2] Make prettier happy --- src/plugins/transitionProperty.js | 6 +++++- src/util/createUtilityPlugin.js | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/plugins/transitionProperty.js b/src/plugins/transitionProperty.js index 5dac4d227293..b4e4cdce23aa 100644 --- a/src/plugins/transitionProperty.js +++ b/src/plugins/transitionProperty.js @@ -1,5 +1,9 @@ import createUtilityPlugin, { convertDefaultKey } from '../util/createUtilityPlugin' export default function() { - return createUtilityPlugin('transitionProperty', [['transition', ['transitionProperty']]], convertDefaultKey) + return createUtilityPlugin( + 'transitionProperty', + [['transition', ['transitionProperty']]], + convertDefaultKey + ) } diff --git a/src/util/createUtilityPlugin.js b/src/util/createUtilityPlugin.js index c6c1d96f9d2b..33c071f59f04 100644 --- a/src/util/createUtilityPlugin.js +++ b/src/util/createUtilityPlugin.js @@ -15,7 +15,11 @@ function className(classPrefix, key) { return `${classPrefix}-${key}` } -export default function createUtilityPlugin(themeKey, utilityVariations, mapTheme = theme => theme) { +export default function createUtilityPlugin( + themeKey, + utilityVariations, + mapTheme = theme => theme +) { return function({ e, addUtilities, variants, theme }) { const utilities = utilityVariations.map(([classPrefix, properties]) => { return fromPairs( @@ -32,5 +36,5 @@ export default function createUtilityPlugin(themeKey, utilityVariations, mapThem } export function convertDefaultKey(theme) { - return _.mapKeys(theme, (value, key) => key === 'default' ? '' : key) + return _.mapKeys(theme, (value, key) => (key === 'default' ? '' : key)) }