import { FaListUl, FaUnderline, FaPen, FaBookOpen, FaEnvelope, FaComments, FaHandshake, FaParagraph, FaLightbulb, FaHeadphones, FaWpforms, } from 'react-icons/fa6'; import { FaEdit, FaFileAlt, FaUserFriends, FaCheckSquare, FaQuestionCircle, } from 'react-icons/fa'; import { ExerciseGen } from './generatedExercises'; const quantity = (quantity: number, tooltip?: string) => { return { param: "quantity", label: "Quantity", tooltip: tooltip ? tooltip : "Exercise Quantity", value: quantity } } const generate = () => { return { param: "generate", value: true } } const reading = (passage: number) => { const readingExercises = [ { label: `Passage ${passage} - Fill Blanks`, type: `reading_${passage}`, icon: FaEdit, sectionId: passage, extra: [ { param: "name", value: "fillBlanks" }, { param: "num_random_words", label: "Random Words", tooltip: "Words that are not the solution", value: 1 }, quantity(4, "Quantity of Blanks"), generate() ], module: "reading" }, { label: `Passage ${passage} - Write Blanks`, type: `reading_${passage}`, icon: FaPen, sectionId: passage, extra: [ { param: "name", value: "writeBlanks" }, { param: "max_words", label: "Word Limit", tooltip: "How many words a solution can have", value: 3 }, quantity(4, "Quantity of Blanks"), generate() ], module: "reading" }, { label: `Passage ${passage} - True False`, type: `reading_${passage}`, icon: FaCheckSquare, sectionId: passage, extra: [ { param: "name", value: "trueFalse" }, quantity(4, "Quantity of Statements"), generate() ], module: "reading" }, { label: `Passage ${passage} - Paragraph Match`, type: `reading_${passage}`, icon: FaParagraph, sectionId: passage, extra: [ { param: "name", value: "paragraphMatch" }, quantity(5, "Quantity of Matches"), generate() ], module: "reading" } ]; if (passage === 3) { readingExercises.push( { label: `Passage 3 - Idea Match`, type: `reading_3`, icon: FaLightbulb, sectionId: passage, extra: [ { param: "name", value: "ideaMatch" }, quantity(5, "Quantity of Ideas"), generate() ], module: "reading" }, ); } return readingExercises; } const listening = (section: number) => { const listeningExercises = [ { label: `Section ${section} - Multiple Choice`, type: `listening_${section}`, icon: FaHeadphones, sectionId: section, extra: [ { param: "name", value: section == 3 ? "multipleChoice3Options" : "multipleChoice" }, quantity(5, "Quantity of Multiple Choice Questions"), generate() ], module: "listening" }, { label: `Section ${section} - Write the Blanks: Questions`, type: `listening_${section}`, icon: FaQuestionCircle, sectionId: section, extra: [ { param: "name", value: "writeBlanksQuestions" }, quantity(5, "Quantity of Blanks"), generate() ], module: "listening" } ]; if (section === 1 || section === 4) { listeningExercises.push( { label: `Section ${section} - Write the Blanks: Fill`, type: `listening_${section}`, icon: FaEdit, sectionId: section, extra: [ { param: "name", value: "writeBlanksFill" }, quantity(5, "Quantity of Blanks"), generate() ], module: "listening" } ); listeningExercises.push( { label: `Section ${section} - Write the Blanks: Form`, type: `listening_${section}`, sectionId: section, icon: FaWpforms, extra: [ { param: "name", value: "writeBlanksForm" }, quantity(5, "Quantity of Blanks"), generate() ], module: "listening" } ); } return listeningExercises; } const EXERCISES: ExerciseGen[] = [ { label: "Multiple Choice", type: "multipleChoice", icon: FaListUl, extra: [ quantity(10, "Amount"), generate() ], module: "level" }, { label: "Multiple Choice - Blank Space", type: "mcBlank", icon: FaEdit, extra: [ quantity(10, "Amount"), generate() ], module: "level" }, { label: "Multiple Choice - Underlined", type: "mcUnderline", icon: FaUnderline, extra: [ quantity(10, "Amount"), generate() ], module: "level" }, /*{ label: "Blank Space", <- Assuming this is FillBlanks aswell type: "blankSpaceText", icon: FaPen, extra: [ quantity(10, "Nº of Blanks"), { label: "Passage Word Size", param: "text_size", value: "250" }, generate() ], module: "level" },*/ { label: "Fill Blanks: MC", type: "fillBlanksMC", icon: FaPen, extra: [ quantity(10, "Nº of Blanks"), { label: "Passage Word Size", param: "text_size", value: "250" }, generate() ], module: "level" }, { label: "Reading Passage", type: "passageUtas", icon: FaBookOpen, extra: [ // in the utas exam there was only mc so I'm assuming short answers are deprecated /*{ label: "Short Answers", param: "sa_qty", value: "10" },*/ { label: "Multiple Choice Quantity", param: "mc_qty", value: "10" }, { label: "Reading Passage Topic", param: "topic", value: "" }, { label: "Passage Word Size", param: "text_size", value: "700" }, generate() ], module: "level" }, { label: "Task 1 - Letter", type: "writing_letter", icon: FaEnvelope, extra: [ generate() ], module: "writing" }, { label: "Task 2 - Essay", type: "writing_2", icon: FaFileAlt, extra: [ generate() ], module: "writing" }, { label: "Exercise 1", type: "speaking_1", icon: FaComments, extra: [ generate() ], module: "speaking" }, { label: "Exercise 2", type: "speaking_2", icon: FaUserFriends, extra: [ generate() ], module: "speaking" }, { label: "Interactive", type: "speaking_3", icon: FaHandshake, extra: [ generate() ], module: "speaking" }, ...reading(1), ...reading(2), ...reading(3), ...listening(1), ...listening(2), ...listening(3), ...listening(4), ] export default EXERCISES;