fix states

This commit is contained in:
Henry Jameson 2024-01-23 20:39:52 +02:00
parent 22b32f149d
commit ff2db7a247
2 changed files with 15 additions and 3 deletions

View File

@ -25,8 +25,16 @@ export const sampleRules = [
{ {
component: 'Button', component: 'Button',
directives: { directives: {
background: '#808080', background: '#000000',
opacity: 0.5 opacity: 0.8
}
},
{
component: 'Button',
state: ['hover'],
directives: {
background: '#FF00FF',
opacity: 0.9
} }
} }
] ]

View File

@ -81,7 +81,10 @@ export const init = (ruleset) => {
if (Object.prototype.hasOwnProperty.call(rule, 'state')) { if (Object.prototype.hasOwnProperty.call(rule, 'state')) {
const ruleStatesSet = new Set(['normal', ...(rule.state || [])]) const ruleStatesSet = new Set(['normal', ...(rule.state || [])])
return combination.state.every(state => ruleStatesSet.has(state)) const combinationSet = new Set(['normal', ...combination.state])
const setsAreEqual = combination.state.every(state => ruleStatesSet.has(state)) &&
[...ruleStatesSet].every(state => combinationSet.has(state))
return setsAreEqual
} else { } else {
if (combination.state.length !== 1 || combination.state[0] !== 'normal') return false if (combination.state.length !== 1 || combination.state[0] !== 'normal') return false
return true return true
@ -93,6 +96,7 @@ export const init = (ruleset) => {
let currentParent = parent let currentParent = parent
while (currentParent) { while (currentParent) {
const rulesParent = ruleset.filter(findRules(currentParent, true)) const rulesParent = ruleset.filter(findRules(currentParent, true))
rulesParent > 1 && console.log('OOPS')
lowerLevelComponent = rulesParent[rulesParent.length - 1] lowerLevelComponent = rulesParent[rulesParent.length - 1]
currentParent = currentParent.parent currentParent = currentParent.parent
if (lowerLevelComponent && filter(lowerLevelComponent)) currentParent = null if (lowerLevelComponent && filter(lowerLevelComponent)) currentParent = null