ENCOA-312

This commit is contained in:
Carlos-Mesquita
2025-01-13 21:02:34 +00:00
parent ccbbf30058
commit 6f9be29cd8
9 changed files with 34 additions and 23 deletions

View File

@@ -44,11 +44,13 @@ const ExerciseWizard: React.FC<Props> = ({
const randomDiff = difficulty.length === 1
? capitalize(difficulty[0])
: `Random (${difficulty.map(dif => capitalize(dif)).join(", ")})` as Difficulty;
: difficulty.length == 0 ?
"Random" :
`Selected (${difficulty.sort().map(dif => capitalize(dif)).join(", ")})` as Difficulty;
const DIFFICULTIES = difficulty.length === 1
? ["A1", "A2", "B1", "B2", "C1", "C2"]
: ["A1", "A2", "B1", "B2", "C1", "C2", randomDiff];
? ["A1", "A2", "B1", "B2", "C1", "C2", "Random"]
: ["A1", "A2", "B1", "B2", "C1", "C2", randomDiff, "Random"];
useEffect(() => {
const initialConfigs = selectedExercises.map(exerciseType => {

View File

@@ -69,7 +69,7 @@ const ExercisePicker: React.FC<ExercisePickerProps> = ({
...(config.params.max_words !== undefined && {
max_words: Number(config.params.max_words)
}),
...(DIFFICULTIES.includes(config.params.difficulty as string) && {
...((DIFFICULTIES.includes(config.params.difficulty as string) || config.params.difficulty === "Random") && {
difficulty: config.params.difficulty
})
};

View File

@@ -42,11 +42,13 @@ const SpeakingComponents: React.FC<Props> = ({ localSettings, updateLocalAndSche
const randomDiff = difficulty.length === 1
? capitalize(difficulty[0])
: `Random (${difficulty.map(dif => capitalize(dif)).join(", ")})` as Difficulty;
: difficulty.length == 0 ?
"Random" :
`Selected (${difficulty.sort().map(dif => capitalize(dif)).join(", ")})` as Difficulty;
const DIFFICULTIES = difficulty.length === 1
? ["A1", "A2", "B1", "B2", "C1", "C2"]
: ["A1", "A2", "B1", "B2", "C1", "C2", randomDiff];
? ["A1", "A2", "B1", "B2", "C1", "C2", "Random"]
: ["A1", "A2", "B1", "B2", "C1", "C2", randomDiff, "Random"];
const difficultyOptions: Option[] = DIFFICULTIES.map(level => ({
label: level,

View File

@@ -32,11 +32,13 @@ const WritingComponents: React.FC<Props> = ({ localSettings, updateLocalAndSched
const randomDiff = difficulty.length === 1
? capitalize(difficulty[0])
: `Random (${difficulty.map(dif => capitalize(dif)).join(", ")})` as Difficulty;
: difficulty.length == 0 ?
"Random" :
`Selected (${difficulty.sort().map(dif => capitalize(dif)).join(", ")})` as Difficulty;
const DIFFICULTIES = difficulty.length === 1
? ["A1", "A2", "B1", "B2", "C1", "C2"]
: ["A1", "A2", "B1", "B2", "C1", "C2", randomDiff];
? ["A1", "A2", "B1", "B2", "C1", "C2", "Random"]
: ["A1", "A2", "B1", "B2", "C1", "C2", randomDiff, "Random"];
const difficultyOptions: Option[] = DIFFICULTIES.map(level => ({
label: level,

View File

@@ -50,8 +50,10 @@ const ResetModule: React.FC<Props> = ({ module, isOpen, setIsOpen, setNumberOfLe
const handleResetModule = () => {
dispatch({ type: 'RESET_MODULE', payload: { module } });
setIsOpen(false);
if (module === "level") {
setNumberOfLevelParts(1);
}
}
return (
<Transition

View File

@@ -216,9 +216,13 @@ const ExamEditor: React.FC<{ levelParts?: number }> = ({ levelParts = 0 }) => {
/>
</div>
{currentModule === "listening" && <ListeningInstructions />}
{["reading", "listening", "level"].includes(currentModule) && <Button onClick={() => setIsResetModuleOpen(true)} customColor={`bg-ielts-${currentModule}/70 hover:bg-ielts-${currentModule} border-ielts-${currentModule}`} className={`text-white self-end`}>
<Button
onClick={() => setIsResetModuleOpen(true)}
customColor={`bg-ielts-${currentModule}/70 hover:bg-ielts-${currentModule} border-ielts-${currentModule}`}
className={`text-white self-end`}
>
Reset Module
</Button>}
</Button>
</div>
<div className="flex flex-row gap-8">
<Settings />

View File

@@ -80,7 +80,6 @@ async function patch(req: NextApiRequest, res: NextApiResponse) {
await Promise.all(newParticipants.map(async (p) => await updateExpiryDateOnGroup(p, group.admin)));
}
console.log(req.body);
await db.collection("groups").updateOne({id}, {$set: {id, ...req.body}}, {upsert: true});
res.status(200).json({ok: true});

View File

@@ -153,14 +153,14 @@ export const defaultSectionSettings = (module: Module, sectionId: number, part?:
}
const defaultModuleSettings = (module: Module, minTimer: number): ModuleState => {
const defaultModuleSettings = (module: Module, minTimer: number, reset: boolean = false): ModuleState => {
const state: ModuleState = {
examLabel: defaultExamLabel(module),
minTimer,
difficulty: [sample(["A1", "A2", "B1", "B2", "C1", "C2"] as Difficulty[])!],
isPrivate: true,
sectionLabels: sectionLabels(module),
expandedSections: [1],
expandedSections: [(reset && (module === "writing" || module === "speaking")) ? 0 : 1],
focusedSection: 1,
sections: [defaultSectionSettings(module, 1)],
importModule: true,

View File

@@ -59,7 +59,7 @@ export const rootReducer = (
return {
modules: {
...state.modules,
[module]: defaultModuleSettings(module, timer),
[module]: defaultModuleSettings(module, timer, true),
},
};
case 'FULL_RESET':