File tree Expand file tree Collapse file tree 3 files changed +8
-3
lines changed
course-matrix/frontend/src/pages/Home Expand file tree Collapse file tree 3 files changed +8
-3
lines changed Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ import TimetableCardKebabMenu from "./TimetableCardKebabMenu";
1313import { useUpdateTimetableMutation } from "@/api/timetableApiSlice" ;
1414
1515interface 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 */
2728const 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 && (
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ import { EllipsisVertical } from "lucide-react";
2020import { useDeleteTimetableMutation } from "@/api/timetableApiSlice" ;
2121
2222interface TimetableCardKebabMenuProps {
23+ refetch : ( ) => void ;
2324 timetableId : number ;
2425}
2526
@@ -28,14 +29,15 @@ interface TimetableCardKebabMenuProps {
2829 * @returns {JSX.Element } The rendered component.
2930 */
3031const 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 }
You can’t perform that action at this time.
0 commit comments