import ExerciseItem, { ReadingExercise } from './types'; import WriteBlanks from "@/editor/Exercises/WriteBlanks"; import ExerciseLabel from '../../Shared/ExerciseLabel'; import MatchSentences from '../../Exercises/MatchSentences'; import TrueFalse from '../../Exercises/TrueFalse'; import FillBlanksLetters from '../../Exercises/Blanks/Letters'; const getExerciseItems = (exercises: ReadingExercise[], sectionId: number): ExerciseItem[] => { const previewLabel = (text: string) => { return text !== undefined ? text.replaceAll('\\n', ' ').split(' ').slice(0, 15).join(' ') : "" } const items: ExerciseItem[] = exercises.map((exercise, index) => { let firstWordId, lastWordId; switch (exercise.type) { case "fillBlanks": firstWordId = exercise.solutions[0].id; lastWordId = exercise.solutions[exercise.solutions.length - 1].id; return { id: index, sectionId, label: ( "{previewLabel(exercise.prompt)}..." } /> ), content: }; case "writeBlanks": firstWordId = exercise.solutions[0].id; lastWordId = exercise.solutions[exercise.solutions.length - 1].id; return { id: index, sectionId, label: ( "{previewLabel(exercise.prompt)}..." } /> ), content: }; case "matchSentences": firstWordId = exercise.sentences[0].id; lastWordId = exercise.sentences[exercise.sentences.length - 1].id; return { id: index, sectionId, label: ( "{previewLabel(exercise.prompt)}..." } /> ), content: }; case "trueFalse": firstWordId = exercise.questions[0].id lastWordId = exercise.questions[exercise.questions.length - 1].id; return { id: index, sectionId, label: ( "{previewLabel(exercise.prompt)}..." } /> ), content: }; } }).filter((item) => item !== undefined); return items || []; }; export default getExerciseItems;