toggleModule("writing")}
+ onClick={!selectedModules.includes("level") ? () => toggleModule("writing") : undefined}
className={clsx(
- "w-52 relative max-w-xs flex lg:flex-row-reverse items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-8 cursor-pointer",
+ "w-52 relative max-w-xs flex items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-8 cursor-pointer",
+ "lg:col-span-2",
selectedModules.includes("writing") ? "border-mti-purple-light" : "border-mti-gray-platinum",
)}>
-
+
-
Writing
- {!selectedModules.includes("writing") &&
}
+
Writing
+ {!selectedModules.includes("writing") && !selectedModules.includes("level") && (
+
+ )}
+ {selectedModules.includes("level") &&
}
{selectedModules.includes("writing") &&
}
toggleModule("speaking")}
+ onClick={!selectedModules.includes("level") ? () => toggleModule("speaking") : undefined}
className={clsx(
- "w-52 relative max-w-xs flex lg:flex-row-reverse items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-8 cursor-pointer",
+ "w-52 relative max-w-xs flex items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-8 cursor-pointer",
+ "lg:col-span-3",
selectedModules.includes("speaking") ? "border-mti-purple-light" : "border-mti-gray-platinum",
)}>
-
-
+
+
-
Speaking
- {!selectedModules.includes("speaking") &&
}
+
Speaking
+ {!selectedModules.includes("speaking") && !selectedModules.includes("level") && (
+
+ )}
+ {selectedModules.includes("level") &&
}
{selectedModules.includes("speaking") &&
}
+
toggleModule("level")
+ : undefined
+ }
+ className={clsx(
+ "w-52 relative max-w-xs flex items-center bg-mti-white-alt transition duration-300 ease-in-out border p-5 rounded-xl gap-8 cursor-pointer",
+ "lg:col-span-3",
+ selectedModules.includes("level") ? "border-mti-purple-light" : "border-mti-gray-platinum",
+ )}>
+
+
+
+
Level
+ {!selectedModules.includes("level") && selectedModules.length === 0 && (
+
+ )}
+ {!selectedModules.includes("level") && selectedModules.length > 0 &&
}
+ {selectedModules.includes("level") &&
}
+
setName(e)} defaultValue={name} label="Assignment Name" required />
diff --git a/src/dashboards/AssignmentView.tsx b/src/dashboards/AssignmentView.tsx
index f88b598c..4bd73762 100644
--- a/src/dashboards/AssignmentView.tsx
+++ b/src/dashboards/AssignmentView.tsx
@@ -10,7 +10,7 @@ import {sortByModule} from "@/utils/moduleUtils";
import {calculateBandScore} from "@/utils/score";
import {convertToUserSolutions} from "@/utils/stats";
import clsx from "clsx";
-import {uniqBy} from "lodash";
+import {capitalize, uniqBy} from "lodash";
import moment from "moment";
import {useRouter} from "next/router";
import {BsBook, BsClipboard, BsHeadphones, BsMegaphone, BsPen} from "react-icons/bs";
@@ -239,9 +239,10 @@ export default function AssignmentView({isOpen, assignment, onClose}: Props) {
{assignment?.exams.map(({module}) => (
- {MODULE_ARRAY.map((module) => (
-
e.module).includes("reading")
- ? "bg-ielts-reading"
- : "bg-mti-black/40"),
- module === "listening" &&
- (assignment.exams.map((e) => e.module).includes("listening")
- ? "bg-ielts-listening"
- : "bg-mti-black/40"),
- module === "writing" &&
- (assignment.exams.map((e) => e.module).includes("writing")
- ? "bg-ielts-writing"
- : "bg-mti-black/40"),
- module === "speaking" &&
- (assignment.exams.map((e) => e.module).includes("speaking")
- ? "bg-ielts-speaking"
- : "bg-mti-black/40"),
- )}>
- {module === "reading" && }
- {module === "listening" && }
- {module === "writing" && }
- {module === "speaking" && }
-
- ))}
+ {assignment.exams
+ .map((e) => e.module)
+ .sort(sortByModuleName)
+ .map((module) => (
+
+ {module === "reading" && }
+ {module === "listening" && }
+ {module === "writing" && }
+ {module === "speaking" && }
+ {module === "level" && }
+
+ ))}
{!assignment.results.map((r) => r.user).includes(user.id) && (
<>