Hotfix for repeat image modifiers

As per Discord conversation, this PR fixed the image modifiers behavior when a modifier appears more than once, and also fixes a regression introduced by ((weighted modifiers)).
This commit is contained in:
patriceac 2022-11-30 22:13:13 -08:00
parent da3e7a2eb8
commit 40ebf468d3

View File

@ -91,7 +91,7 @@ function createModifierGroup(modifierGroup, initiallyExpanded) {
if (activeTags.map(x => trimModifiers(x.name)).includes(trimmedName)) { if (activeTags.map(x => trimModifiers(x.name)).includes(trimmedName)) {
// remove modifier from active array // remove modifier from active array
activeTags = activeTags.filter(x => trimModifiers(x.name) != trimmedName) activeTags = activeTags.filter(x => trimModifiers(x.name) != trimmedName)
toggleCardState(modifierCard, false) toggleCardState(trimmedName, false)
} else { } else {
// add modifier to active array // add modifier to active array
activeTags.push({ activeTags.push({
@ -100,7 +100,7 @@ function createModifierGroup(modifierGroup, initiallyExpanded) {
'originElement': modifierCard, 'originElement': modifierCard,
'previews': modifierPreviews 'previews': modifierPreviews
}) })
toggleCardState(modifierCard, true) toggleCardState(trimmedName, true)
} }
refreshTagsList() refreshTagsList()
@ -221,8 +221,8 @@ function refreshTagsList() {
tag.element.addEventListener('click', () => { tag.element.addEventListener('click', () => {
let idx = activeTags.indexOf(tag) let idx = activeTags.indexOf(tag)
if (idx !== -1 && activeTags[idx].originElement !== undefined) { if (idx !== -1) {
toggleCardState(activeTags[idx].originElement, false) toggleCardState(activeTags[idx].name, false)
activeTags.splice(idx, 1) activeTags.splice(idx, 1)
refreshTagsList() refreshTagsList()
@ -235,14 +235,20 @@ function refreshTagsList() {
editorModifierTagsList.appendChild(brk) editorModifierTagsList.appendChild(brk)
} }
function toggleCardState(card, makeActive) { function toggleCardState(modifierName, makeActive) {
if (makeActive) { document.querySelector('#editor-modifiers').querySelectorAll('.modifier-card').forEach(card => {
card.classList.add(activeCardClass) const name = card.querySelector('.modifier-card-label').innerText
card.querySelector('.modifier-card-image-overlay').innerText = '-' if (trimModifiers(modifierName) == trimModifiers(name)) {
} else { if(makeActive) {
card.classList.remove(activeCardClass) card.classList.add(activeCardClass)
card.querySelector('.modifier-card-image-overlay').innerText = '+' card.querySelector('.modifier-card-image-overlay').innerText = '-'
} }
else{
card.classList.remove(activeCardClass)
card.querySelector('.modifier-card-image-overlay').innerText = '+'
}
}
})
} }
function changePreviewImages(val) { function changePreviewImages(val) {