48 lines
1.8 KiB
JavaScript
48 lines
1.8 KiB
JavaScript
import { state, saveState, genId } from '../state.js';
|
|
import { renderMainScreen } from '../render/main-screen.js';
|
|
import { showBodyMetricsDialog } from '../modals/metrics-modal.js';
|
|
|
|
export function showBodyMetrics() {
|
|
showBodyMetricsDialog(state.bodyMetrics, (newMetric) => {
|
|
if (!newMetric) return;
|
|
newMetric.id = genId();
|
|
state.bodyMetrics.unshift(newMetric);
|
|
state.bodyMetrics.sort((a, b) => new Date(b.date) - new Date(a.date));
|
|
saveState();
|
|
renderMainScreen();
|
|
alert('Замеры сохранены!');
|
|
});
|
|
}
|
|
|
|
export function editBodyMetric(metricId) {
|
|
const metric = state.bodyMetrics.find(m => m.id === metricId);
|
|
if (!metric) return;
|
|
showBodyMetricsDialog(state.bodyMetrics, (updatedData) => {
|
|
if (!updatedData) return;
|
|
Object.assign(metric, updatedData);
|
|
state.bodyMetrics.sort((a, b) => new Date(b.date) - new Date(a.date));
|
|
saveState();
|
|
// Если сейчас на экране настроек — перерисуем список
|
|
const list = document.getElementById('body-metrics-list');
|
|
if (list && typeof window.SettingsLogic !== 'undefined') {
|
|
window.SettingsLogic._renderBodyMetricsList();
|
|
} else {
|
|
renderMainScreen();
|
|
}
|
|
}, metric);
|
|
}
|
|
|
|
export function deleteMetric(id) {
|
|
if (!confirm('Удалить замер?')) return;
|
|
state.bodyMetrics = state.bodyMetrics.filter(m => m.id !== id);
|
|
saveState();
|
|
const list = document.getElementById('body-metrics-list');
|
|
if (list && typeof window.SettingsLogic !== 'undefined') {
|
|
window.SettingsLogic._renderBodyMetricsList();
|
|
} else {
|
|
renderMainScreen();
|
|
}
|
|
}
|
|
|
|
window.ML = { showBodyMetrics, editBodyMetric, deleteMetric };
|