(newTags, inactiveTags)
| 183 | } |
| 184 | |
| 185 | function refreshModifiersState(newTags, inactiveTags) { |
| 186 | // clear existing modifiers |
| 187 | document |
| 188 | .querySelector("#editor-modifiers") |
| 189 | .querySelectorAll(".modifier-card") |
| 190 | .forEach((modifierCard) => { |
| 191 | const modifierName = modifierCard.dataset.fullName // pick the full modifier name |
| 192 | if (activeTags.map((x) => x.name).includes(modifierName)) { |
| 193 | modifierCard.classList.remove(activeCardClass) |
| 194 | modifierCard.querySelector(".modifier-card-image-overlay").innerText = "+" |
| 195 | } |
| 196 | }) |
| 197 | activeTags = [] |
| 198 | |
| 199 | // set new modifiers |
| 200 | newTags.forEach((tag) => { |
| 201 | let found = false |
| 202 | document |
| 203 | .querySelector("#editor-modifiers") |
| 204 | .querySelectorAll(".modifier-card") |
| 205 | .forEach((modifierCard) => { |
| 206 | const modifierName = modifierCard.dataset.fullName |
| 207 | const shortModifierName = modifierCard.querySelector(".modifier-card-label p").innerText |
| 208 | |
| 209 | if (trimModifiers(tag) == trimModifiers(modifierName)) { |
| 210 | // add modifier to active array |
| 211 | if (!activeTags.map((x) => x.name).includes(tag)) { |
| 212 | // only add each tag once even if several custom modifier cards share the same tag |
| 213 | const imageModifierCard = modifierCard.cloneNode(true) |
| 214 | imageModifierCard.querySelector(".modifier-card-label p").innerText = tag.replace( |
| 215 | modifierName, |
| 216 | shortModifierName |
| 217 | ) |
| 218 | activeTags.push({ |
| 219 | name: tag, |
| 220 | element: imageModifierCard, |
| 221 | originElement: modifierCard, |
| 222 | }) |
| 223 | } |
| 224 | modifierCard.classList.add(activeCardClass) |
| 225 | modifierCard.querySelector(".modifier-card-image-overlay").innerText = "-" |
| 226 | found = true |
| 227 | } |
| 228 | }) |
| 229 | if (found == false) { |
| 230 | // custom tag went missing, create one here |
| 231 | let modifierCard = createModifierCard(tag, undefined, false) // create a modifier card for the missing tag, no image |
| 232 | |
| 233 | modifierCard.addEventListener("click", () => { |
| 234 | if (activeTags.map((x) => x.name).includes(tag)) { |
| 235 | // remove modifier from active array |
| 236 | activeTags = activeTags.filter((x) => x.name != tag) |
| 237 | modifierCard.classList.remove(activeCardClass) |
| 238 | |
| 239 | modifierCard.querySelector(".modifier-card-image-overlay").innerText = "+" |
| 240 | } |
| 241 | refreshTagsList() |
| 242 | }) |
no test coverage detected