import { loadState, saveState, state, updateSyncStatus } from './state.js'; import { renderMainScreen } from './render/main-screen.js'; import { sync } from './sync.js'; // Подключаем logic-модули (они регистрируются в window) import './logic/workout.js'; import './logic/exercise.js'; import './logic/set.js'; import './logic/cardio.js'; import './logic/metrics.js'; import './logic/settings.js'; // Подключаем модалки import './modals/modal-base.js'; import './modals/exercise-modal.js'; import './modals/set-modal.js'; import './modals/cardio-modal.js'; import './modals/metrics-modal.js'; import './modals/edit-exercise-modal.js'; import './modals/edit-workout-date-modal.js'; function renderHeader() { document.getElementById('app-header').innerHTML = `

Gym Tracker

● Локально
`; } function init() { loadState(); renderHeader(); renderMainScreen(); updateSyncStatus(); } // Глобальные хелперы для inline-обработчиков window.App = { getWorkout: (id) => state.workouts.find(w => w.id === id), saveAndRender: () => { saveState(); /* перерисовка не нужна — select не требует */ }, }; window.AppSync = { sync }; window.App.backToMain = () => renderMainScreen(); document.addEventListener('DOMContentLoaded', init);