mirror of
https://github.com/escalante29/healthy-fit.git
synced 2026-03-21 12:28:46 +01:00
Add interactive routine wizard, slider controls, value persistence, and timer pause
All checks were successful
Deploy to VPS / deploy (push) Successful in 24s
All checks were successful
Deploy to VPS / deploy (push) Successful in 24s
- Interactive routine generation wizard with AI refinement loop (generate-draft, refine, save-draft endpoints + RoutineWizard modal component) - Replace +/- stepper buttons with slider controls for reps/weight during workout - Persist user-modified reps/weight across sets of the same exercise - Add pause/resume by tapping timer dials, with back-button confirmation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import client from './client';
|
||||
import type { KettlebellSession, KettlebellSetLog } from '../types/kettlebell';
|
||||
import type { KettlebellSession, KettlebellSetLog, DraftSession } from '../types/kettlebell';
|
||||
|
||||
export interface GenerateSessionRequest {
|
||||
focus: string;
|
||||
@@ -7,6 +7,18 @@ export interface GenerateSessionRequest {
|
||||
available_weights: number[];
|
||||
}
|
||||
|
||||
export interface RefineRequest {
|
||||
draft: DraftSession;
|
||||
feedback: string;
|
||||
focus: string;
|
||||
duration_minutes: number;
|
||||
available_weights: number[];
|
||||
}
|
||||
|
||||
export interface SaveDraftRequest {
|
||||
draft: DraftSession;
|
||||
}
|
||||
|
||||
export interface LogSetRequest {
|
||||
exercise_order: number;
|
||||
set_number: number;
|
||||
@@ -49,3 +61,12 @@ export const abandonSession = (id: number) =>
|
||||
|
||||
export const deleteSession = (id: number) =>
|
||||
client.delete(`/kettlebell/${id}`);
|
||||
|
||||
export const generateDraft = (data: GenerateSessionRequest) =>
|
||||
client.post<DraftSession>('/kettlebell/generate-draft', data).then(r => r.data);
|
||||
|
||||
export const refineDraft = (data: RefineRequest) =>
|
||||
client.post<DraftSession>('/kettlebell/refine', data).then(r => r.data);
|
||||
|
||||
export const saveDraft = (data: SaveDraftRequest) =>
|
||||
client.post<KettlebellSession>('/kettlebell/save-draft', data).then(r => r.data);
|
||||
|
||||
Reference in New Issue
Block a user