diff --git a/src/app.js b/src/app.js index 5ffd723..350c1b2 100644 --- a/src/app.js +++ b/src/app.js @@ -1,5 +1,17 @@ import { getOverlayModeLabel, buildOverlayPanels, renderOverlaySidePanel, renderOverlayLeaderboard, renderTeamOverlay, renderObsOverlay } from "./overlays.js"; +import { renderSettings } from "./settings.js"; + +import { renderRaceFormatField, renderRaceFormatContextCard, getRaceSummaryItems, getRaceSummaryWarnings, renderManageStatusBadge, renderRaceWizardSteps, renderRaceWizardContent, renderRaceStandingsTable } from "./race_setup_ui.js"; + +const renderRaceFormatFieldView = (labelKey, hintKey, controlHtml, options = {}) => renderRaceFormatField(labelKey, hintKey, controlHtml, options, { t }); +const renderRaceFormatContextCardView = (titleKey, hintKey) => renderRaceFormatContextCard(titleKey, hintKey, { t }); +const renderManageStatusBadgeView = (status) => renderManageStatusBadge(status, { t }); +const renderRaceWizardStepsView = () => renderRaceWizardSteps({ t, raceWizardStep, escapeHtml }); +const renderRaceWizardContentView = (draft, classOptions, wizardDrivers, preset) => + renderRaceWizardContent(draft, classOptions, wizardDrivers, preset, { t, escapeHtml, raceWizardStep, getRaceFormatPresets, getClassName, getRaceWizardSessionPlan }); +const renderRaceStandingsTableView = (rows, emptyLabel) => renderRaceStandingsTable(rows, emptyLabel, { t, renderTable, escapeHtml }); + const NAV_ITEMS = [ { id: "dashboard", titleKey: "nav.dashboard", subtitleKey: "nav.dashboard_sub" }, { id: "events", titleKey: "nav.events", subtitleKey: "nav.events_sub" }, @@ -2967,7 +2979,45 @@ function renderView() { renderOverlay(); break; case "settings": - renderSettings(); + renderSettings({ + dom, + ammc, + state, + t, + backend, + settingsStorageNotice, + settingsStorageNoticeIsError, + getManagedWsUrl, + getBackendUrl, + getDefaultBackendUrl, + escapeHtml, + saveState, + renderView, + connectDecoder, + playPassingBeep, + playFinishSiren, + openOverlayWindow, + buildOverlayUrl, + normalizeObsOverlaySettings, + DEFAULT_OBS_OVERLAY_SETTINGS, + OBS_LAYOUTS, + OBS_THEMES, + pingBackend, + syncStateToBackend, + buildDataExportPayload, + downloadJsonFile, + importDataPayload, + buildDirectoryExportPayload, + downloadCsvFile, + buildDriversCsvRows, + buildCarsCsvRows, + buildExportMeta, + normalizeStoredRacePreset, + saveAmmcConfigToBackend, + refreshAmmcStatus, + startManagedAmmc, + stopManagedAmmc, + }); break; case "guide": renderGuide(); @@ -3942,10 +3992,10 @@ function renderEventWorkspace(mode) { isRaceMode ? `
- ${renderRaceWizardSteps()} + ${renderRaceWizardStepsView()}
- ${renderRaceWizardContent(raceWizardDraft, wizardClassOptions, getDriversForClass(raceWizardDraft.classId), getRaceWizardPreset(raceWizardDraft.presetId))} + ${renderRaceWizardContentView(raceWizardDraft, wizardClassOptions, getDriversForClass(raceWizardDraft.classId), getRaceWizardPreset(raceWizardDraft.presetId))}