export function getSessionsForEventHelper(state, eventId) { return state.sessions.filter((s) => s.eventId === eventId); } export function getModeLabelHelper(mode, { t }) { return mode === "track" ? t("mode.track") : t("mode.race"); } export function normalizeStartModeHelper(mode) { return ["mass", "position", "staggered"].includes(String(mode || "").toLowerCase()) ? String(mode).toLowerCase() : "mass"; } export function getStartModeLabelHelper(mode, { t, normalizeStartMode }) { return t(`events.start_mode_${normalizeStartMode(mode)}`); } export function getClassNameHelper(state, classId, { t }) { return state.classes.find((x) => x.id === classId)?.name || t("common.unknown"); } export function getEventNameHelper(state, eventId, { t }) { return state.events.find((x) => x.id === eventId)?.name || t("common.unknown_event"); } export function renderAssignmentListView(eventId, deps) { const { state, t, escapeHtml, getSessionsForEvent, getSessionTypeLabel, saveState, renderAssignmentList } = deps; const block = document.getElementById("assignmentList"); if (!block) { return; } const sessions = getSessionsForEvent(eventId); block.innerHTML = sessions .map((s) => { const items = (s.assignments || []) .map((a) => { const driver = state.drivers.find((d) => d.id === a.driverId); const car = state.cars.find((c) => c.id === a.carId); return `
${t("session.none_yet")}
`; } return renderTable( [t("table.event"), t("table.session"), t("table.type"), t("table.status"), t("table.mode")], sessions.map( (s) => `