From b8101e9e240dcd1b53bbd64b8b747f6ba205ed5e Mon Sep 17 00:00:00 2001 From: Benjamin Langlotz Date: Tue, 28 May 2024 05:47:08 +0200 Subject: [PATCH] fix(KUI-1176): set activeSyllabus to latest if no selectedSemester --- .../hooks/__tests__/useSemesterRoundState.test.js | 14 ++++++++++++++ public/js/app/hooks/useSemesterRoundState.js | 9 +++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/public/js/app/hooks/__tests__/useSemesterRoundState.test.js b/public/js/app/hooks/__tests__/useSemesterRoundState.test.js index c919478f..50d6142a 100644 --- a/public/js/app/hooks/__tests__/useSemesterRoundState.test.js +++ b/public/js/app/hooks/__tests__/useSemesterRoundState.test.js @@ -408,6 +408,20 @@ describe('useSemesterRoundsLogic', () => { expect(result.current.hasSyllabus).toBe(false) }) + test('if selectedSemester is undefined, sets the latest syllabus as activeSyllabus', () => { + const { result } = renderHook(() => + useSemesterRoundState({ + initiallySelectedRoundIndex: undefined, + initiallySelectedSemester: undefined, + roundsBySemester, + syllabusList, + activeSemesters, + }) + ) + + expect(result.current.activeSyllabus).toEqual(syllabusList[0]) + }) + test('calling resetSelectedRoundIndex resets round values', async () => { const { result } = renderHook(() => useSemesterRoundState({ diff --git a/public/js/app/hooks/useSemesterRoundState.js b/public/js/app/hooks/useSemesterRoundState.js index 037bb2e9..601decad 100644 --- a/public/js/app/hooks/useSemesterRoundState.js +++ b/public/js/app/hooks/useSemesterRoundState.js @@ -64,10 +64,11 @@ const useSemesterRoundState = ({ const hasActiveSemesters = useMemo(() => activeSemesters && activeSemesters.length > 0, [activeSemesters]) - const activeSyllabus = useMemo( - () => getValidSyllabusForSemester(syllabusList, selectedSemester), - [syllabusList, selectedSemester] - ) + const activeSyllabus = useMemo(() => { + if (!selectedSemester) return getElementOrEmpty(syllabusList, 0) + + return getValidSyllabusForSemester(syllabusList, selectedSemester) + }, [syllabusList, selectedSemester]) const hasSyllabus = useMemo( () => syllabusList && syllabusList.length > 0 && activeSyllabus !== undefined,