MCPcopy Index your code
hub / github.com/easydiffusion/easydiffusion / refreshModifiersState

Function refreshModifiersState

ui/media/js/image-modifiers.js:185–252  ·  view source on GitHub ↗
(newTags, inactiveTags)

Source from the content-addressed store, hash-verified

183}
184
185function 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 })

Callers 1

dnd.jsFile · 0.85

Calls 6

trimModifiersFunction · 0.85
createModifierCardFunction · 0.85
refreshTagsListFunction · 0.85
pushMethod · 0.80
addMethod · 0.45
addEventListenerMethod · 0.45

Tested by

no test coverage detected