const etapes = [ "┌(・ω・)┘", "└(・ω・)┐", "┌(;・ω・)┘", "└(;・ω・)┐", "┌(;・ω・;)┘", "└(;・ω・;)┐", ]; const assigneTexte = (texte: string): void => ELEMENTS.BOUTON_CODE_PROMO.textContent = texte; let index = 0; const z = {}; const callback = () => { if (!ELEMENTS.BOUTON_CODE_PROMO.hasAttribute(ATTRIBUT_CHARGEMENT)) { ELEMENTS.BOUTON_CODE_PROMO.textContent = "Apply"; clearInterval(z.interval); } assigneTexte(etapes.at(index) ?? "Loading..."); index = index + 1 === etapes.length - 1 ? 0 : index + 1; }; callback(); z.interval = setInterval(callback, 500);