Sporadic set logging added
This commit is contained in:
@@ -158,6 +158,14 @@ const translations = {
|
||||
type_to_filter: 'Type to filter...',
|
||||
exercise_name_exists: 'An exercise with this name already exists',
|
||||
profile_saved: 'Profile saved successfully',
|
||||
|
||||
// Sporadic Sets
|
||||
quick_log: 'Quick Log',
|
||||
sporadic_sets_title: 'Quick Logged Sets',
|
||||
log_sporadic_success: 'Set logged successfully',
|
||||
sporadic_set_note: 'Note (optional)',
|
||||
done: 'Done',
|
||||
saved: 'Saved',
|
||||
},
|
||||
ru: {
|
||||
// Tabs
|
||||
@@ -309,7 +317,15 @@ const translations = {
|
||||
type_to_filter: 'Введите для фильтрации...',
|
||||
exercise_name_exists: 'Упражнение с таким названием уже существует',
|
||||
profile_saved: 'Профиль успешно сохранен',
|
||||
}
|
||||
|
||||
// Sporadic Sets
|
||||
quick_log: 'Быстрая запись',
|
||||
sporadic_sets_title: 'Быстрые записи',
|
||||
log_sporadic_success: 'Сет записан',
|
||||
sporadic_set_note: 'Заметка (опц.)',
|
||||
done: 'Готово',
|
||||
saved: 'Сохранено',
|
||||
},
|
||||
};
|
||||
|
||||
export const t = (key: keyof typeof translations['en'], lang: Language) => {
|
||||
|
||||
68
services/sporadicSets.ts
Normal file
68
services/sporadicSets.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
import { api } from './api';
|
||||
import { SporadicSet } from '../types';
|
||||
|
||||
export async function getSporadicSets(): Promise<SporadicSet[]> {
|
||||
try {
|
||||
const response = await api.get('/sporadic-sets');
|
||||
if (response.success) {
|
||||
return response.sporadicSets || [];
|
||||
}
|
||||
return [];
|
||||
} catch (error) {
|
||||
console.error('Failed to fetch sporadic sets:', error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
export async function logSporadicSet(setData: {
|
||||
exerciseId: string;
|
||||
weight?: number;
|
||||
reps?: number;
|
||||
durationSeconds?: number;
|
||||
distanceMeters?: number;
|
||||
height?: number;
|
||||
bodyWeightPercentage?: number;
|
||||
note?: string;
|
||||
}): Promise<SporadicSet | null> {
|
||||
try {
|
||||
const response = await api.post('/sporadic-sets', setData);
|
||||
if (response.success) {
|
||||
return response.sporadicSet;
|
||||
}
|
||||
return null;
|
||||
} catch (error) {
|
||||
console.error('Failed to log sporadic set:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateSporadicSet(id: string, setData: {
|
||||
weight?: number;
|
||||
reps?: number;
|
||||
durationSeconds?: number;
|
||||
distanceMeters?: number;
|
||||
height?: number;
|
||||
bodyWeightPercentage?: number;
|
||||
note?: string;
|
||||
}): Promise<SporadicSet | null> {
|
||||
try {
|
||||
const response = await api.put(`/sporadic-sets/${id}`, setData);
|
||||
if (response.success) {
|
||||
return response.sporadicSet;
|
||||
}
|
||||
return null;
|
||||
} catch (error) {
|
||||
console.error('Failed to update sporadic set:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteSporadicSet(id: string): Promise<boolean> {
|
||||
try {
|
||||
const response = await api.delete(`/sporadic-sets/${id}`);
|
||||
return response.success || false;
|
||||
} catch (error) {
|
||||
console.error('Failed to delete sporadic set:', error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user