Add nested atRule support to substituteResponsiveAtRules

This commit is contained in:
Justin Anastos 2019-02-05 09:00:27 -05:00
parent 3785a9cda6
commit 40bb6c619d

View File

@ -25,7 +25,8 @@ export default function(config) {
})
mediaQuery.append(
responsiveRules.map(rule => {
// Filter out nested `atRules`; we'll process those separately
responsiveRules.filter(rule => rule.type !== 'atrule').map(rule => {
const cloned = rule.clone()
cloned.selectors = _.map(rule.selectors, selector =>
buildSelectorVariant(selector, screen, separator, message => {
@ -36,6 +37,22 @@ export default function(config) {
})
)
mediaQuery.append(
// Process nested `atRules`.
responsiveRules.filter(rule => rule.type === 'atrule').map(atRule => {
const clonedAtRule = atRule.clone()
clonedAtRule.nodes.forEach(rule => {
rule.selectors = _.map(rule.selectors, selector => {
const selectorVariant = buildSelectorVariant(selector, screen, separator, message => {
throw rule.error(message)
})
return selectorVariant
})
})
return clonedAtRule
})
)
finalRules.push(mediaQuery)
})