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) => {
e.preventDefault();
const form = new FormData(e.currentTarget);
event.branding = normalizeBrandingConfig({
...event.branding,
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,
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", () => {