Navigation rework, added prompt edit to components that were missing

This commit is contained in:
Carlos-Mesquita
2024-11-25 16:50:46 +00:00
parent e9b7bd14cc
commit 114da173be
105 changed files with 3761 additions and 3728 deletions

View File

@@ -12,7 +12,7 @@ import { InviteWithEntity } from "@/interfaces/invite";
import { Assignment } from "@/interfaces/results";
import { Stat, User } from "@/interfaces/user";
import { sessionOptions } from "@/lib/session";
import useExamStore from "@/stores/examStore";
import useExamStore from "@/stores/exam";
import { filterBy, findBy, mapBy, redirect, serialize } from "@/utils";
import { requestUser } from "@/utils/api";
import { activeAssignmentFilter, futureAssignmentFilter } from "@/utils/assignments";
@@ -75,7 +75,9 @@ export default function OfficialExam({ user, entities, assignments, sessions, ex
const [isLoading, setIsLoading] = useState(false)
const router = useRouter();
const state = useExamStore((state) => state);
const dispatch = useExamStore((state) => state.dispatch);
const reload = () => {
setIsLoading(true)
router.replace(router.asPath)
@@ -89,31 +91,19 @@ export default function OfficialExam({ user, entities, assignments, sessions, ex
})
if (assignmentExams.every((x) => !!x)) {
state.setUserSolutions([]);
state.setShowSolutions(false);
state.setExams(assignmentExams.sort(sortByModule));
state.setSelectedModules(mapBy(assignmentExams.sort(sortByModule), 'module'));
state.setAssignment(assignment);
dispatch({
type: "INIT_EXAM", payload: {
exams: assignmentExams.sort(sortByModule),
modules: mapBy(assignmentExams.sort(sortByModule), 'module'),
assignment
}
})
router.push(`/exam?assignment=${assignment.id}&destination=${destination}`);
}
};
const loadSession = async (session: Session) => {
state.setShuffles(session.userSolutions.map((x) => ({ exerciseID: x.exercise, shuffles: x.shuffleMaps ? x.shuffleMaps : [] })));
state.setSelectedModules(session.selectedModules);
state.setExam(session.exam);
state.setExams(session.exams);
state.setSessionId(session.sessionId);
state.setAssignment(session.assignment);
state.setExerciseIndex(session.exerciseIndex);
state.setPartIndex(session.partIndex);
state.setModuleIndex(session.moduleIndex);
state.setTimeSpent(session.timeSpent);
state.setUserSolutions(session.userSolutions);
state.setShowSolutions(false);
state.setQuestionIndex(session.questionIndex);
dispatch({type: "SET_SESSION", payload: {session}});
router.push(`/exam?assignment=${session.assignment?.id}&destination=${destination}`);
};