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