massive frontend refactoring (works good)
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
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 = `
|
||||
<div>
|
||||
<h2>Gym Tracker</h2>
|
||||
<div id="sync-status" class="sync-status">● Локально</div>
|
||||
</div>
|
||||
<div class="header-actions">
|
||||
<button class="icon-btn header-btn" onclick="ML.showBodyMetrics()" title="Замеры">📏</button>
|
||||
<button class="icon-btn header-btn" onclick="SettingsLogic.show()" title="Настройки">⚙️</button>
|
||||
<button class="btn btn-small btn-secondary" onclick="AppSync.sync()" title="Синхронизация">🔄</button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
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);
|
||||
Reference in New Issue
Block a user