Nazywanie Test
i robienie katalogów test może być mylące, bo można pomyśleć, że są tam unit testy. Może np. Quizz?
Poza tym przemyślałbym przesyłanie danych do komponentów, bo teraz wrzucasz po prostu konsumenta kontekstu do każdego komponentu (nawet w jednym komponencie widziałem, że 2 razy używasz konsumenta).
Może przesyłać te dane przez props
?
value.questionsReady[value.activePage - 1]
To się powtarza w kilku miejscach, więc jest to duplikacja kodu. Należałoby gdzieś to wydzielić.
Poza tym za bardzo wchodzisz w strukturę danych (co jeśli questionsReady
przestanie być tablicą, albo co jeśli activePage
przestanie być liczbą?)
Ja bym wrzucił do value
dodatkową metodę np. getPreviousQuestion
, która by zwracała właśnie to, co chcesz osiągnąć (poprzednie pytanie, jak rozumiem), a szczegóły techniczne zostawiłbym obiektowi value
(swoją drogą strasznie generyczna i mało opisowa nazwa. Wszystko można nazwać value
).
No tak jak tak spojrzałem, to w ogóle nie chodzi o poprzednie pytanie tylko o aktualne (liczone od 1, przeliczone na liczone od zera). Czyli to w ogóle jest pokićkane i mylące, skoro nie domyśliłem się, co tam robisz.
W zasadzie po co ten konsument w ogóle? Jeśli komponent Question
potrzebuje pytanie, możesz przekazać je jako właściwość już na wyższym poziomie (z pliku Test.js)
<Question question={value.questionsReady[value.activePage - 1]} />
tym sposobem komponent Question będzie te dane, których potrzebuje bez potrzeby zakładania czegokolwiek o tablicy questionsReady
ani bez znajomości wartości activePage