This commit is contained in:
@@ -763,8 +763,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
};
|
||||
|
||||
const updateAvatarOptionPreviews = (form) => {
|
||||
const checked = form.querySelector('[data-avatar-field="avatar_preset"]:checked');
|
||||
const baseSeed = checked?.value || '';
|
||||
const baseSeed = readValue('avatar_preset');
|
||||
if (!baseSeed) return;
|
||||
|
||||
const currentValues = {};
|
||||
@@ -794,10 +793,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
form.querySelectorAll('[data-avatar-option-thumb]').forEach((image) => {
|
||||
const field = image.getAttribute('data-avatar-option-field') || '';
|
||||
const value = image.getAttribute('data-avatar-option-value') || '';
|
||||
const seed = field === 'avatar_preset' ? value : baseSeed;
|
||||
if (!seed) return;
|
||||
|
||||
const params = new URLSearchParams({ seed });
|
||||
const params = new URLSearchParams({ seed: baseSeed });
|
||||
Object.entries(currentValues).forEach(([currentField, currentValue]) => {
|
||||
const param = fieldMap[currentField];
|
||||
if (!param) return;
|
||||
@@ -879,24 +875,9 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
};
|
||||
|
||||
form.querySelector('[data-avatar-reroll]')?.addEventListener('click', () => {
|
||||
const radios = Array.from(form.querySelectorAll('[data-avatar-field="avatar_preset"]'));
|
||||
const used = new Set();
|
||||
radios.forEach((radio, index) => {
|
||||
let seed = buildSeed();
|
||||
while (used.has(seed)) {
|
||||
seed = buildSeed();
|
||||
}
|
||||
used.add(seed);
|
||||
const url = dicebearUrl(seed);
|
||||
radio.value = seed;
|
||||
radio.setAttribute('data-avatar-url', url);
|
||||
radio.checked = index === 0;
|
||||
const card = radio.closest('.avatar-preset-card');
|
||||
card?.querySelector('img')?.setAttribute('src', url);
|
||||
card?.querySelector('img')?.setAttribute('alt', `Variante ${index + 1}`);
|
||||
const label = card?.querySelector('.avatar-preset-card__label');
|
||||
if (label) label.textContent = index === 0 ? 'Neue Auswahl' : `Variante ${index + 1}`;
|
||||
});
|
||||
const seedField = form.querySelector('[data-avatar-field="avatar_preset"]');
|
||||
if (!(seedField instanceof HTMLInputElement)) return;
|
||||
seedField.value = buildSeed();
|
||||
updateAvatarPreview(form);
|
||||
updateAvatarOptionPreviews(form);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user