Skip to content

Commit 384d0c1

Browse files
Fix: workout draft after changing logged user
- Fix an issue where the workout draft from a given user still loaded after user changing accounts. - Adapt the new workout screen options to reflect the change on workout draft. - Fix an issue where workout stats from a given user were not being loaded properly after the user changing accounts. - Raise version to 2.2.0
1 parent e261410 commit 384d0c1

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "fitlogr",
3-
"version": "2.1.0",
3+
"version": "2.2.0",
44
"private": true,
55
"scripts": {
66
"dev": "next dev",

src/app/dashboard/workout/[workoutid]/edit/page.tsx

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,20 @@ export default function TrackWorkout({ params, template } : { params?: { workout
2222
const [modals, setModals] = useState<Modal>()
2323
const [exercises, setExercises] = useState<ExerciseData[]>([])
2424
const [previousStats, setPreviousStats] = useState<PreviousStats>()
25-
25+
2626
useEffect(() => {
2727
apiWithAuth(token).get('exercises').then(response => {
2828
setExercises(response.data);
2929
}).catch(error => {
3030
console.log(error);
3131
});
3232

33+
const initial: Workout = {
34+
user: user?.sub!,
35+
status: "IN_PROGRESS",
36+
exercises: []
37+
}
38+
3339
const workoutStorage = localStorage.getItem('workoutDraft');
3440

3541
if(params?.workoutid) {
@@ -54,25 +60,21 @@ export default function TrackWorkout({ params, template } : { params?: { workout
5460
});
5561
} else if(workoutStorage && workoutStorage !== "undefined") {
5662
const workoutStorageParsed: Workout = JSON.parse(workoutStorage!);
57-
if(workoutStorageParsed.status === "IN_PROGRESS") {
63+
64+
if(workoutStorageParsed.status === "IN_PROGRESS" && workoutStorageParsed.user == user.sub) {
5865
setWorkout(JSON.parse(workoutStorage));
66+
} else {
67+
setWorkout(initial);
5968
}
6069
} else {
61-
const initial: Workout = {
62-
user: user?.sub!,
63-
status: "IN_PROGRESS",
64-
exercises: []
65-
}
6670
setWorkout(initial);
6771
}
6872

6973
}, [params?.workoutid, template, token, user?.sub]);
7074

7175
useEffect(() => {
7276
if(workout) {
73-
if(!params?.workoutid){
74-
localStorage.setItem('workoutDraft', JSON.stringify(workout));
75-
}
77+
localStorage.setItem('workoutDraft', JSON.stringify(workout));
7678
}
7779
}, [workout, params?.workoutid]);
7880

@@ -244,8 +246,8 @@ export default function TrackWorkout({ params, template } : { params?: { workout
244246
</table>
245247
<div className="text-xs mt-4 mb-2 py-3 px-2 rounded-md bg-white/20 block text-center" onClick={(e) => addSet(indexExercise)}>Adicionar set</div>
246248
<div className="flex justify-between gap-2 text-center">
247-
<div className="flex-1 text-xs py-3 px-2 rounded-md bg-white/20" onClick={(e) => { getPreviousStats(workout.user, exercise.id, 'previousSets') }}>Estatísticas anteriores</div>
248-
<div className="flex-1 text-xs py-3 px-2 rounded-md bg-white/20" onClick={(e) => { getPreviousStats(workout.user, exercise.id, '1RM') }}>One Rep Max</div>
249+
<div className="flex-1 text-xs py-3 px-2 rounded-md bg-white/20" onClick={(e) => { getPreviousStats(user.sub, exercise.id, 'previousSets') }}>Estatísticas anteriores</div>
250+
<div className="flex-1 text-xs py-3 px-2 rounded-md bg-white/20" onClick={(e) => { getPreviousStats(user.sub, exercise.id, '1RM') }}>One Rep Max</div>
249251
</div>
250252
</div>
251253
)

src/components/StartWorkout.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@
22

33
import { useState, useEffect } from "react";
44
import MenuLink from "./MenuLink";
5+
import { UserToken } from "@/lib/interface";
6+
import { jwtDecode } from "jwt-decode";
57

68
export default function StartWorkout() {
9+
const token = document.cookie.split("; ").find((row) => row.startsWith("token="))?.split("=")[1];
10+
const user: UserToken = jwtDecode(token!);
711

812
const[draftLink, setDraftLink] = useState(false);
913

@@ -12,12 +16,12 @@ export default function StartWorkout() {
1216
const workoutStorage = localStorage.getItem('workoutDraft');
1317
if(workoutStorage){
1418
const draft = JSON.parse(workoutStorage);
15-
if(draft.exercises.length > 0) {
19+
if(draft.exercises.length > 0 && draft.user == user.sub) {
1620
setDraftLink(true);
1721
}
1822
}
1923
}
20-
}, [])
24+
}, [user.sub])
2125

2226
if(draftLink) { return <MenuLink link="/dashboard/workout/new/track" title="Continuar treino" subtitle="Continue o registro de onde parou" /> }
2327

0 commit comments

Comments
 (0)