From 4bf45e6b13080c1c4d027fec83fa5675ba20a876 Mon Sep 17 00:00:00 2001 From: Dayna Yoon Date: Sat, 4 Apr 2026 03:44:15 -0600 Subject: [PATCH 1/2] fix: prevent term-select from overriding current term on initial load --- src/components/classes/list/components/term-select.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/classes/list/components/term-select.tsx b/src/components/classes/list/components/term-select.tsx index bbd5b49e..8dacf054 100644 --- a/src/components/classes/list/components/term-select.tsx +++ b/src/components/classes/list/components/term-select.tsx @@ -33,10 +33,11 @@ export function TermSelect({ isRefetching, } = clientApi.term.all.useQuery(); - // If the current term is not in the list, select the first term + // If the selected term no longer exists (e.g. deleted), fall back to the first term. + // Only runs when selectedTermId is already set — initial selection is handled by class-list-view. useEffect(() => { const selectedTerm = terms?.find((t) => t.id === selectedTermId); - if (!selectedTerm && terms?.[0] && !isRefetching) + if (selectedTermId && !selectedTerm && terms?.[0] && !isRefetching) setSelectedTermId(terms[0].id); }, [terms, selectedTermId, setSelectedTermId]); From ff9f9ae3c1238bc4971aa332864d73e82006b932 Mon Sep 17 00:00:00 2001 From: Dayna Yoon Date: Sat, 4 Apr 2026 03:54:35 -0600 Subject: [PATCH 2/2] fix: fall back to first term when no current term is returned --- src/components/classes/list/class-list-view.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/classes/list/class-list-view.tsx b/src/components/classes/list/class-list-view.tsx index 2f013055..fca3756e 100644 --- a/src/components/classes/list/class-list-view.tsx +++ b/src/components/classes/list/class-list-view.tsx @@ -112,6 +112,9 @@ export function ClassListView({ classId, setClassId }: ClassListViewProps) { if (queryTerm === "current") { if (!selectedTermId && currentTerm) { setSelectedTermId(currentTerm.id); + } else if (!selectedTermId && !isLoadingCurrentTerm && terms?.[0]) { + // No current term returned from backend; fall back to first term + setSelectedTermId(terms[0].id); } return; }