Fix race format persistence in event manager

This commit is contained in:
larssand
2026-03-27 21:47:50 +01:00
parent 3fb2ebe5b3
commit ceac00987c

View File

@@ -229,15 +229,18 @@ export function renderEventManagerView(context) {
document.getElementById("eventBrandingForm")?.addEventListener("submit", (e) => { document.getElementById("eventBrandingForm")?.addEventListener("submit", (e) => {
e.preventDefault(); e.preventDefault();
const form = new FormData(e.currentTarget); const form = new FormData(e.currentTarget);
event.branding = normalizeBrandingConfig({ updateEvent((item) => ({
...event.branding, ...item,
branding: normalizeBrandingConfig({
...item.branding,
brandName: String(form.get("brandName") || "").trim(), brandName: String(form.get("brandName") || "").trim(),
brandTagline: String(form.get("brandTagline") || "").trim(), brandTagline: String(form.get("brandTagline") || "").trim(),
pdfFooter: String(form.get("pdfFooter") || "").trim(), pdfFooter: String(form.get("pdfFooter") || "").trim(),
pdfTheme: String(form.get("pdfTheme") || "").trim(), pdfTheme: String(form.get("pdfTheme") || "").trim(),
}); }),
}));
saveState(); saveState();
rerenderEventManager(eventId); refreshManager();
}); });
document.getElementById("eventLogoUpload")?.addEventListener("change", (eventInput) => { document.getElementById("eventLogoUpload")?.addEventListener("change", (eventInput) => {
@@ -248,12 +251,15 @@ export function renderEventManagerView(context) {
} }
const reader = new FileReader(); const reader = new FileReader();
reader.onload = () => { reader.onload = () => {
event.branding = normalizeBrandingConfig({ updateEvent((item) => ({
...event.branding, ...item,
branding: normalizeBrandingConfig({
...item.branding,
logoDataUrl: typeof reader.result === "string" ? reader.result : "", logoDataUrl: typeof reader.result === "string" ? reader.result : "",
}); }),
}));
saveState(); saveState();
rerenderEventManager(eventId); refreshManager();
}; };
reader.readAsDataURL(file); reader.readAsDataURL(file);
}); });
@@ -658,9 +664,16 @@ export function renderEventManagerView(context) {
document.getElementById("raceFormatForm")?.addEventListener("submit", (e) => { document.getElementById("raceFormatForm")?.addEventListener("submit", (e) => {
e.preventDefault(); e.preventDefault();
const form = new FormData(e.currentTarget); const form = new FormData(e.currentTarget);
event.raceConfig = buildRaceFormatConfigFromForm(form, event); const config = buildRaceFormatConfigFromForm(form, event);
updateEvent((item) => ({
...item,
raceConfig: {
...config,
teams: getEventTeams(item),
},
}));
saveState(); saveState();
rerenderEventManager(eventId); refreshManager();
}); });
document.getElementById("applyRacePreset")?.addEventListener("click", () => { document.getElementById("applyRacePreset")?.addEventListener("click", () => {
@@ -669,9 +682,13 @@ export function renderEventManagerView(context) {
return; return;
} }
const form = new FormData(formElement); const form = new FormData(formElement);
applyRaceFormatPreset(event, String(form.get("presetId") || "custom")); updateEvent((item) => {
const next = normalizeEvent(item);
applyRaceFormatPreset(next, String(form.get("presetId") || "custom"));
return next;
});
saveState(); saveState();
rerenderEventManager(eventId); refreshManager();
}); });
document.getElementById("saveRacePreset")?.addEventListener("click", () => { document.getElementById("saveRacePreset")?.addEventListener("click", () => {
@@ -717,9 +734,16 @@ export function renderEventManagerView(context) {
}); });
const otherPresets = (state.settings.racePresets || []).filter((preset) => preset.id !== presetId); const otherPresets = (state.settings.racePresets || []).filter((preset) => preset.id !== presetId);
state.settings.racePresets = [...otherPresets, storedPreset]; state.settings.racePresets = [...otherPresets, storedPreset];
event.raceConfig = { ...config, presetId }; updateEvent((item) => ({
...item,
raceConfig: {
...config,
presetId,
teams: getEventTeams(item),
},
}));
saveState(); saveState();
rerenderEventManager(eventId); refreshManager();
}); });
document.getElementById("deleteRacePreset")?.addEventListener("click", () => { document.getElementById("deleteRacePreset")?.addEventListener("click", () => {
@@ -733,9 +757,15 @@ export function renderEventManagerView(context) {
return; return;
} }
state.settings.racePresets = (state.settings.racePresets || []).filter((preset) => preset.id !== presetId); state.settings.racePresets = (state.settings.racePresets || []).filter((preset) => preset.id !== presetId);
event.raceConfig.presetId = "custom"; updateEvent((item) => ({
...item,
raceConfig: {
...item.raceConfig,
presetId: "custom",
},
}));
saveState(); saveState();
rerenderEventManager(eventId); refreshManager();
}); });
document.getElementById("generateQualifying")?.addEventListener("click", () => { document.getElementById("generateQualifying")?.addEventListener("click", () => {