Fix issue where dark variant in 'class' mode was incompatible with 'group-hover' variant (#2337)

* Fix issue where dark variant in 'class' mode was incompatible with 'group-hover' variant

* Update changelog
This commit is contained in:
Adam Wathan 2020-09-06 20:34:35 -04:00 • committed by GitHub
parent 0b48b4cd8c
commit 0cf76cdd8b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 7 deletions

View file

@ -1,4 +1,3 @@
import selectorParser from 'postcss-selector-parser'
import buildSelectorVariant from '../util/buildSelectorVariant'
import defaultConfig from '../../defaultConfig'
@ -31,13 +30,19 @@ export default {
}
if (config('dark') === 'class') {
const parser = selectorParser(selectors => {
selectors.walkClasses(sel => {
sel.value = `dark${separator}${sel.value}`
sel.parent.insertBefore(sel, selectorParser().astSync(prefix('.dark ')))
const modified = modifySelectors(({ selector }) => {
return buildSelectorVariant(selector, 'dark', separator, message => {
throw container.error(message)
})
})
return modifySelectors(({ selector }) => parser.processSync(selector))
modified.walkRules(rule => {
rule.selectors = rule.selectors.map(selector => {
return `${prefix('.dark ')} ${selector}`
})
})
return modified
}
throw new Error("The `dark` config option must be either 'media' or 'class'.")