integrated front and back

This commit is contained in:
2026-10-01 23:52:12 +03:00
parent 1f81632083
commit 3e966c9ff6
15 changed files with 634 additions and 72 deletions
+24 -4
View File
@@ -1,22 +1,42 @@
const STORAGE_KEY = 'gym_tracker_v6';
// Палитра из 16 контрастных цветов для клиентов
export const CLIENT_COLORS = [
'#bb86fc', // фиолетовый (дефолтный для личного режима)
'#03dac6', // бирюзовый
'#fbbc04', // жёлтый
'#cf6679', // розовый
'#64b5f6', // голубой
'#81c784', // зелёный
'#ffb74d', // оранжевый
'#ba68c8', // светло-фиолетовый
'#4dd0e1', // циан
'#e57373', // красный
'#aed581', // салатовый
'#ffd54f', // янтарный
'#9575cd', // пурпурный
'#4db6ac', // тиловый
'#f06292', // малиновый
'#7986cb', // индиго
];
export const DEFAULT_COLOR = CLIENT_COLORS[0];
export const state = {
workouts: [],
exerciseRef: [],
bodyMetrics: [],
// Справочники с бэкенда
workoutTypes: [],
metricTypes: [],
clients: [],
clients: [], // каждый клиент: {id, sync_id, full_name, birth_date, goal, color}
expandedWorkoutId: null,
expandedExerciseId: null,
nextId: 1,
// Режимы: 'personal' (по умолчанию) или 'trainer'
mode: 'personal',
currentClientId: null, // В личном режиме null, в режиме тренера - ID клиента
currentClientId: null, // больше не используется глобально, но оставим для совместимости
};
export function loadState() {