diff --git a/src/event_manager_controller.js b/src/event_manager_controller.js index 945ecd2..3695547 100644 --- a/src/event_manager_controller.js +++ b/src/event_manager_controller.js @@ -517,22 +517,42 @@ export function renderEventManagerView(context) { commitTeamCreate(); }); - document.getElementById("teamAddSave")?.addEventListener("click", commitTeamCreate); - - raceTeams.forEach((team) => { - document.getElementById(`team-edit-${team.id}`)?.addEventListener("click", () => { - setSelectedTeamEditId(team.id); + const teamSection = document.getElementById("manage-setup-teams"); + teamSection?.addEventListener("click", (clickEvent) => { + const target = clickEvent.target instanceof Element ? clickEvent.target.closest('#teamAddSave, #teamEditSave, [id^="team-edit-"], [id^="team-delete-"]') : null; + if (!(target instanceof HTMLElement)) { + return; + } + clickEvent.preventDefault(); + if (target.id === "teamAddSave") { + commitTeamCreate(); + return; + } + if (target.id === "teamEditSave") { + commitTeamEdit(); + return; + } + if (target.id.startsWith("team-edit-")) { + const teamId = target.id.replace("team-edit-", ""); + if (!teamId) { + return; + } + setSelectedTeamEditId(teamId); rerenderEventManager(eventId); - }); - - document.getElementById(`team-delete-${team.id}`)?.addEventListener("click", () => { - event.raceConfig.teams = getEventTeams(event).filter((item) => item.id !== team.id); - if (getSelectedTeamEditId() === team.id) { + return; + } + if (target.id.startsWith("team-delete-")) { + const teamId = target.id.replace("team-delete-", ""); + if (!teamId) { + return; + } + event.raceConfig.teams = getEventTeams(event).filter((item) => item.id !== teamId); + if (getSelectedTeamEditId() === teamId) { setSelectedTeamEditId(null); } saveState(); rerenderEventManager(eventId); - }); + } }); document.getElementById("teamEditCancel")?.addEventListener("click", () => { @@ -591,7 +611,6 @@ export function renderEventManagerView(context) { commitTeamEdit(); }); - document.getElementById("teamEditSave")?.addEventListener("click", commitTeamEdit); document.getElementById("raceFormatBasicToggle")?.addEventListener("click", () => { setRaceFormatAdvanced(false);