Skip to content

Commit

Permalink
adds helpers to get weight and useState hooks from exercise
Browse files Browse the repository at this point in the history
  • Loading branch information
vrnvu committed Apr 29, 2024
1 parent 7372901 commit faf5e38
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 12 deletions.
16 changes: 16 additions & 0 deletions src/contexts/UserConfigContext.tsx
Expand Up @@ -12,6 +12,22 @@ export interface UserConfig {
lastExercises: Map<ExerciseType, [number, Dispatch<SetStateAction<number>>]>;
}

export function updateWeight(userConfig: UserConfig, exercise: ExerciseType): Dispatch<SetStateAction<number>> {
return userConfig.exercises.get(exercise)![1];
}

export function updateLastWeight(userConfig: UserConfig, exercise: ExerciseType): Dispatch<SetStateAction<number>> {
return userConfig.lastExercises.get(exercise)![1];
}

export function getWeight(userConfig: UserConfig, exercise: ExerciseType): number {
return userConfig.exercises.get(exercise)![0];
}

export function getWeightLast(userConfig: UserConfig, exercise: ExerciseType): number {
return userConfig.lastExercises.get(exercise)![0];
}

const UserConfigContext = createContext<UserConfig | undefined>(undefined);

export const useUserConfig: () => UserConfig = () => {
Expand Down
15 changes: 7 additions & 8 deletions src/views/PlanView.tsx
@@ -1,20 +1,19 @@
import Cluster from "@/components/Cluster";
import Component from "@/components/Component";
import { ExerciseType, UserConfig, useUserConfig } from "@/contexts/UserConfigContext";
import { ExerciseType, UserConfig, getWeight, getWeightLast, useUserConfig } from "@/contexts/UserConfigContext";

export interface PlanViewProps {}
export default function PlanView({}: PlanViewProps) {
const userConfig: UserConfig = useUserConfig();

const benchPress = userConfig.exercises.get(ExerciseType.BENCH_PRESS)![0];
const backSquat = userConfig.exercises.get(ExerciseType.BACK_SQUAT)![0];
const weightedPullups = userConfig.exercises.get!(ExerciseType.WEIGHTED_PULLUPS)![0];
const benchPress = getWeight(userConfig, ExerciseType.BENCH_PRESS);
const backSquat = getWeight(userConfig, ExerciseType.BACK_SQUAT);
const weightedPullups = getWeight(userConfig, ExerciseType.WEIGHTED_PULLUPS);
const total = benchPress + backSquat + weightedPullups;

const lastBenchPress = userConfig.lastExercises.get(ExerciseType.BENCH_PRESS)![0];
const lastBackSquat = userConfig.lastExercises.get(ExerciseType.BACK_SQUAT)![0];
const lastWeightedPullups = userConfig.lastExercises.get!(ExerciseType.WEIGHTED_PULLUPS)![0];

const lastBenchPress = getWeightLast(userConfig, ExerciseType.BENCH_PRESS);
const lastBackSquat = getWeightLast(userConfig, ExerciseType.BACK_SQUAT);
const lastWeightedPullups = getWeightLast(userConfig, ExerciseType.WEIGHTED_PULLUPS);
const lastTotal = lastBenchPress + lastBackSquat + lastWeightedPullups;

const benchIncrease = Math.round(((benchPress - lastBenchPress)/ lastBenchPress) * 100);
Expand Down
8 changes: 4 additions & 4 deletions src/views/ProgramView.tsx
Expand Up @@ -8,16 +8,16 @@ import {
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion"
import { ExerciseType, UserConfig, useUserConfig } from "@/contexts/UserConfigContext";
import { ExerciseType, UserConfig, getWeight, useUserConfig } from "@/contexts/UserConfigContext";

export interface ProgramViewProps {}
export default function ProgramView({}: ProgramViewProps) {
const userConfig: UserConfig = useUserConfig();

const exercieses: StrengthExercise[] = [
{name: "Bench press", sets: "3x5", weight: userConfig.exercises.get(ExerciseType.BENCH_PRESS)![0]},
{name: "Back squat", sets: "3x5", weight: userConfig.exercises.get(ExerciseType.BACK_SQUAT)![0]},
{name: "Weighted pullups", sets: "3x5", weight: userConfig.exercises.get(ExerciseType.WEIGHTED_PULLUPS)![0]}
{name: "Bench press", sets: "3x5", weight: getWeight(userConfig, ExerciseType.BENCH_PRESS)},
{name: "Back squat", sets: "3x5", weight: getWeight(userConfig, ExerciseType.BACK_SQUAT)},
{name: "Weighted pullups", sets: "3x5", weight: getWeight(userConfig, ExerciseType.WEIGHTED_PULLUPS)}
];

const weekIds = ["item-1", "item-2", "item-3", "item-4", "item-5", "item-6", "item-7"];
Expand Down

0 comments on commit faf5e38

Please sign in to comment.