فهرست منبع

refactor(workout-stepper): remove unused props and streamline code for better readability
refactor(workout-session-header): remove unused prop currentExerciseIndex to simplify component interface
style(workout-session-set): adjust input class names for consistent styling across components

Mathias 1 ماه پیش
والد
کامیت
fb2d78597a

+ 2 - 14
src/features/workout-builder/ui/workout-stepper.tsx

@@ -36,7 +36,6 @@ export function WorkoutStepper() {
     exercisesByMuscle,
     isLoadingExercises,
     exercisesError,
-    goToStep,
     nextStep,
     prevStep,
     toggleEquipment,
@@ -46,7 +45,6 @@ export function WorkoutStepper() {
     canProceedToStep3,
     fetchExercises,
     exercisesOrder,
-    setExercisesOrder,
     shuffleExercise,
     pickExercise,
     isShuffling,
@@ -77,17 +75,8 @@ export function WorkoutStepper() {
     }
   }, [currentStep, selectedEquipment, selectedMuscles, fromSession]);
 
-  const {
-    isWorkoutActive,
-    session,
-    startWorkout,
-    currentExercise,
-    formatElapsedTime,
-    isTimerRunning,
-    toggleTimer,
-    resetTimer,
-    quitWorkout,
-  } = useWorkoutSession();
+  const { isWorkoutActive, session, startWorkout, formatElapsedTime, isTimerRunning, toggleTimer, resetTimer, quitWorkout } =
+    useWorkoutSession();
 
   const canContinue = currentStep === 1 ? canProceedToStep2 : currentStep === 2 ? canProceedToStep3 : exercisesByMuscle.length > 0;
 
@@ -173,7 +162,6 @@ export function WorkoutStepper() {
       <div className="w-full max-w-6xl mx-auto">
         {!showCongrats && (
           <WorkoutSessionHeader
-            currentExerciseIndex={session.exercises.findIndex((exercise) => exercise.id === currentExercise?.id)}
             elapsedTime={formatElapsedTime()}
             isTimerRunning={isTimerRunning}
             onQuitWorkout={quitWorkout}

+ 1 - 3
src/features/workout-session/ui/workout-session-header.tsx

@@ -18,7 +18,6 @@ interface WorkoutSessionHeaderProps {
   onToggleTimer: VoidFunction;
   onResetTimer: VoidFunction;
   onQuitWorkout: VoidFunction;
-  currentExerciseIndex: number;
 }
 
 export function WorkoutSessionHeader({
@@ -27,14 +26,13 @@ export function WorkoutSessionHeader({
   onToggleTimer,
   onResetTimer,
   onQuitWorkout,
-  currentExerciseIndex,
 }: WorkoutSessionHeaderProps) {
   const t = useI18n();
   const [showQuitDialog, setShowQuitDialog] = useState(false);
   const [resetCount, setResetCount] = useState(0);
   const [volumeUnit, setVolumeUnit] = useState<WeightUnit>("kg");
   const locale = useCurrentLocale();
-  const { getExercisesCompleted, getTotalExercises, session, getTotalVolume, getTotalVolumeInUnit } = useWorkoutSession();
+  const { getExercisesCompleted, getTotalExercises, session, getTotalVolumeInUnit } = useWorkoutSession();
   const exercisesCompleted = getExercisesCompleted();
   const totalExercises = getTotalExercises();
   const totalVolume = getTotalVolumeInUnit(volumeUnit);

+ 7 - 7
src/features/workout-session/ui/workout-session-set.tsx

@@ -76,7 +76,7 @@ export function WorkoutSessionSet({ set, setIndex, onChange, onFinish, onRemove
         return (
           <div className="flex gap-1 w-full">
             <input
-              className="border border-black rounded px-1 py-2 w-1/2 text-base sm:text-sm text-center font-bold dark:bg-slate-800 dark:placeholder:text-slate-500"
+              className="border border-black rounded px-1 py-2 w-1/2 text-base text-center font-bold dark:bg-slate-800 dark:placeholder:text-slate-500"
               disabled={set.completed}
               min={0}
               onChange={handleValueIntChange(columnIndex)}
@@ -86,7 +86,7 @@ export function WorkoutSessionSet({ set, setIndex, onChange, onFinish, onRemove
               value={valuesInt[columnIndex] ?? ""}
             />
             <input
-              className="border border-black rounded px-1 py-2 w-1/2 text-base sm:text-sm text-center font-bold dark:bg-slate-800 dark:placeholder:text-slate-500"
+              className="border border-black rounded px-1 py-2 w-1/2 text-base text-center font-bold dark:bg-slate-800 dark:placeholder:text-slate-500"
               disabled={set.completed}
               max={59}
               min={0}
@@ -102,7 +102,7 @@ export function WorkoutSessionSet({ set, setIndex, onChange, onFinish, onRemove
         return (
           <div className="flex gap-1 w-full items-center">
             <input
-              className="border border-black rounded px-1 py-2 w-1/2 text-base sm:text-sm text-center font-bold dark:bg-slate-800"
+              className="border border-black rounded px-1 py-2 w-1/2 text-base text-center font-bold dark:bg-slate-800"
               disabled={set.completed}
               min={0}
               onChange={handleValueIntChange(columnIndex)}
@@ -112,7 +112,7 @@ export function WorkoutSessionSet({ set, setIndex, onChange, onFinish, onRemove
               value={valuesInt[columnIndex] ?? ""}
             />
             <select
-              className="border border-black rounded px-1 py-2 w-1/2 text-base sm:text-sm font-bold bg-white dark:bg-slate-800 dark:text-gray-200 h-10 "
+              className="border border-black rounded px-1 py-2 w-1/2 text-base font-bold bg-white dark:bg-slate-800 dark:text-gray-200 h-10 "
               disabled={set.completed}
               onChange={handleUnitChange(columnIndex)}
               value={units[columnIndex] ?? "kg"}
@@ -125,7 +125,7 @@ export function WorkoutSessionSet({ set, setIndex, onChange, onFinish, onRemove
       case "REPS":
         return (
           <input
-            className="border border-black rounded px-1 py-2 w-full text-base sm:text-sm text-center font-bold dark:bg-slate-800"
+            className="border border-black rounded px-1 py-2 w-full text-base text-center font-bold dark:bg-slate-800"
             disabled={set.completed}
             min={0}
             onChange={handleValueIntChange(columnIndex)}
@@ -138,7 +138,7 @@ export function WorkoutSessionSet({ set, setIndex, onChange, onFinish, onRemove
       case "BODYWEIGHT":
         return (
           <input
-            className="border border-black rounded px-1 py-2 w-full text-base sm:text-sm text-center font-bold dark:bg-slate-800"
+            className="border border-black rounded px-1 py-2 w-full text-base text-center font-bold dark:bg-slate-800"
             disabled={set.completed}
             placeholder=""
             readOnly
@@ -173,7 +173,7 @@ export function WorkoutSessionSet({ set, setIndex, onChange, onFinish, onRemove
           <div className="flex flex-col w-full md:w-auto" key={columnIndex}>
             <div className="flex items-center w-full gap-1 mb-1">
               <select
-                className="border border-black dark:border-slate-700 rounded font-bold px-1 py-2 text-base sm:text-sm w-full bg-white dark:bg-slate-800 dark:text-gray-200 min-w-0 h-10 "
+                className="border border-black dark:border-slate-700 rounded font-bold px-1 py-2 text-base w-full bg-white dark:bg-slate-800 dark:text-gray-200 min-w-0 h-10 "
                 disabled={set.completed}
                 onChange={handleTypeChange(columnIndex)}
                 value={type}