Skip to content

Commit 95c88f7

Browse files
committed
Fix indexing bug and set default messages when a timetable has no associated username or courses
1 parent beabd17 commit 95c88f7

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

course-matrix/frontend/src/pages/Home/Home.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import SharedCalendar from "../TimetableBuilder/SharedCalendar";
2121
import { useGetUsernameFromUserIdQuery } from "@/api/authApiSlice";
2222

2323
export interface Timetable {
24+
index: number;
2425
id: number;
2526
created_at: string;
2627
updated_at: string;
@@ -82,6 +83,7 @@ const Home = () => {
8283
const allTimetables = [...myOwningTimetables, ...sharedWithMeTimetables]
8384
.map((timetable, index) => ({
8485
...timetable,
86+
index: index + 1,
8587
isShared: index >= myOwningTimetables.length,
8688
}))
8789
.sort(sortingFunction);
@@ -104,8 +106,6 @@ const Home = () => {
104106
);
105107
const ownerUsername = usernameData ?? "";
106108

107-
console.log("SELECTED SHARED TIMETABLE", selectedSharedTimetable);
108-
109109
return (
110110
<div className="w-full">
111111
<div className="m-8">
@@ -178,7 +178,7 @@ const Home = () => {
178178
refetch={refetch}
179179
sharedRefetch={sharedRefetch}
180180
setErrorMessage={setErrorMessage}
181-
key={timetable.id}
181+
key={timetable.index}
182182
ownerId={timetable.user_id}
183183
title={timetable.timetable_title}
184184
lastEditedDate={new Date(timetable.updated_at)}
@@ -194,7 +194,7 @@ const Home = () => {
194194
refetch={refetch}
195195
sharedRefetch={sharedRefetch}
196196
setErrorMessage={setErrorMessage}
197-
key={timetable.id}
197+
key={timetable.index}
198198
ownerId={timetable.user_id}
199199
title={timetable.timetable_title}
200200
lastEditedDate={new Date(timetable.updated_at)}
@@ -210,7 +210,7 @@ const Home = () => {
210210
refetch={refetch}
211211
sharedRefetch={sharedRefetch}
212212
setErrorMessage={setErrorMessage}
213-
key={timetable.id}
213+
key={timetable.index}
214214
ownerId={timetable.user_id}
215215
title={timetable.timetable_title}
216216
lastEditedDate={new Date(timetable.updated_at)}

course-matrix/frontend/src/pages/TimetableBuilder/SharedCalendar.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,21 @@ const SharedCalendar = React.memo<SharedCalendarProps>(
110110
isResponsive: false,
111111
});
112112

113+
const username = user_username.trim().length > 0 ? user_username : "John Doe";
114+
113115
return (
114116
<div>
115117
<h1 className="text-xl text-center justify-between font-medium tracking-tight mb-4">
116118
You are viewing{" "}
117-
<span className="text-green-500">{user_username}'s</span> timetable
119+
<span className="text-green-500">{username ?? "John Doe"}'s</span> timetable
118120
named <span className="text-green-500">{timetable_title}</span> for{" "}
119121
<span className="text-green-500">{semester}</span>
120122
</h1>
121123
<div className="text-sm justify-between tracking-tight mb-2">
122124
<b>Courses:</b>{" "}
125+
{courses.length === 0 && (
126+
<span className="text-sm text-red-500">This timetable has no courses</span>
127+
)}
123128
{courses.map((course) => (
124129
<span className="text-blue-500 mr-2" key={course}>
125130
{course}{" "}

0 commit comments

Comments
 (0)