Prepared for partial exams
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import {Module} from ".";
|
import {Module} from ".";
|
||||||
|
|
||||||
export type Exam = ReadingExam | ListeningExam | WritingExam | SpeakingExam | LevelExam;
|
export type Exam = ReadingExam | ListeningExam | WritingExam | SpeakingExam | LevelExam;
|
||||||
|
export type Variant = "diagnostic" | "partial";
|
||||||
|
|
||||||
export interface ReadingExam {
|
export interface ReadingExam {
|
||||||
parts: ReadingPart[];
|
parts: ReadingPart[];
|
||||||
@@ -9,6 +10,7 @@ export interface ReadingExam {
|
|||||||
minTimer: number;
|
minTimer: number;
|
||||||
type: "academic" | "general";
|
type: "academic" | "general";
|
||||||
isDiagnostic: boolean;
|
isDiagnostic: boolean;
|
||||||
|
variant?: Variant;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ReadingPart {
|
export interface ReadingPart {
|
||||||
@@ -25,6 +27,7 @@ export interface LevelExam {
|
|||||||
exercises: Exercise[];
|
exercises: Exercise[];
|
||||||
minTimer: number;
|
minTimer: number;
|
||||||
isDiagnostic: boolean;
|
isDiagnostic: boolean;
|
||||||
|
variant?: Variant;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ListeningExam {
|
export interface ListeningExam {
|
||||||
@@ -33,6 +36,7 @@ export interface ListeningExam {
|
|||||||
module: "listening";
|
module: "listening";
|
||||||
minTimer: number;
|
minTimer: number;
|
||||||
isDiagnostic: boolean;
|
isDiagnostic: boolean;
|
||||||
|
variant?: Variant;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ListeningPart {
|
export interface ListeningPart {
|
||||||
@@ -63,6 +67,7 @@ export interface WritingExam {
|
|||||||
exercises: Exercise[];
|
exercises: Exercise[];
|
||||||
minTimer: number;
|
minTimer: number;
|
||||||
isDiagnostic: boolean;
|
isDiagnostic: boolean;
|
||||||
|
variant?: Variant;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface WordCounter {
|
interface WordCounter {
|
||||||
@@ -76,6 +81,7 @@ export interface SpeakingExam {
|
|||||||
exercises: Exercise[];
|
exercises: Exercise[];
|
||||||
minTimer: number;
|
minTimer: number;
|
||||||
isDiagnostic: boolean;
|
isDiagnostic: boolean;
|
||||||
|
variant?: Variant;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Exercise =
|
export type Exercise =
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export default function Generation() {
|
|||||||
value={module}
|
value={module}
|
||||||
onChange={setModule}
|
onChange={setModule}
|
||||||
className="flex flex-row -2xl:flex-wrap w-full gap-4 -md:justify-center justify-between">
|
className="flex flex-row -2xl:flex-wrap w-full gap-4 -md:justify-center justify-between">
|
||||||
{[...MODULE_ARRAY, "level"].map((x) => (
|
{[...MODULE_ARRAY].map((x) => (
|
||||||
<RadioGroup.Option value={x} key={x}>
|
<RadioGroup.Option value={x} key={x}>
|
||||||
{({checked}) => (
|
{({checked}) => (
|
||||||
<span
|
<span
|
||||||
|
|||||||
Reference in New Issue
Block a user