Skip to content

Commit 7cd8a8b

Browse files
committed
Use refetch instead of reloading the page
1 parent 0720fe5 commit 7cd8a8b

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const Home = () => {
1616
(user_metadata?.user?.user_metadata?.username as string) ??
1717
(user_metadata?.user?.email as string);
1818

19-
const { data, isLoading } = useGetTimetablesQuery() as {
19+
const { data, isLoading, refetch } = useGetTimetablesQuery() as {
2020
data: Timetable[];
2121
isLoading: boolean;
2222
};
@@ -63,6 +63,7 @@ const Home = () => {
6363
) : (
6464
data?.map((timetable, index) => (
6565
<TimetableCard
66+
refetch={refetch}
6667
key={index}
6768
timetableId={timetable.id}
6869
title={timetable.timetable_title}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import TimetableCardKebabMenu from "./TimetableCardKebabMenu";
1313
import { useUpdateTimetableMutation } from "@/api/timetableApiSlice";
1414

1515
interface TimetableCardProps {
16+
refetch: () => void;
1617
timetableId: number;
1718
title: string;
1819
lastEditedDate: Date;
@@ -25,6 +26,7 @@ interface TimetableCardProps {
2526
* @returns {JSX.Element} The rendered component.
2627
*/
2728
const TimetableCard = ({
29+
refetch,
2830
timetableId,
2931
title,
3032
lastEditedDate,
@@ -88,7 +90,7 @@ const TimetableCard = ({
8890
>
8991
<Pencil />
9092
</Button>
91-
<TimetableCardKebabMenu timetableId={timetableId} />
93+
<TimetableCardKebabMenu refetch={refetch} timetableId={timetableId} />
9294
</>
9395
)}
9496
{isEditingTitle && (

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { EllipsisVertical } from "lucide-react";
2020
import { useDeleteTimetableMutation } from "@/api/timetableApiSlice";
2121

2222
interface TimetableCardKebabMenuProps {
23+
refetch: () => void;
2324
timetableId: number;
2425
}
2526

@@ -28,14 +29,15 @@ interface TimetableCardKebabMenuProps {
2829
* @returns {JSX.Element} The rendered component.
2930
*/
3031
const TimetableCardKebabMenu = ({
32+
refetch,
3133
timetableId,
3234
}: TimetableCardKebabMenuProps) => {
3335
const [deleteTimetable] = useDeleteTimetableMutation();
3436

3537
const handleDelete = async () => {
3638
try {
3739
await deleteTimetable(timetableId);
38-
window.location.reload();
40+
refetch();
3941
} catch (error) {
4042
console.error("Failed to delete timetable:", error);
4143
}

0 commit comments

Comments
 (0)