diff --git a/src/components/ProgramManagement/CourseManagementFlow.jsx b/src/components/ProgramManagement/CourseManagementFlow.jsx index 1ff1a2c..33f244a 100644 --- a/src/components/ProgramManagement/CourseManagementFlow.jsx +++ b/src/components/ProgramManagement/CourseManagementFlow.jsx @@ -19,27 +19,7 @@ export const CourseManagementFlow = ({ courseID, isShown, onFinish }) => { const [course, updateCourse] = useState(emptyState); // replace with api data - const canGoNext = (index) => { - switch (index) { - case 0: - return isCourseValid(course.content); - case 1: - return true; - case 2: - return isQuizValid(course.quiz); - } - }; - - const runBeforeNext = (index) => { - switch (index) { - case 0: - console.debug(course.content); //TODO: replace with an api call - break; - case 2: - console.debug(course.quiz); //TODO: replace with an api call - break; - } - }; + const [modalKey, setModalKey] = useState(0); const flowStops = [ { @@ -52,10 +32,14 @@ export const CourseManagementFlow = ({ courseID, isShown, onFinish }) => { } /> ), + canGoNext: () => isCourseValid(course.content), + action: () => console.debug(course.content), }, { title: "إضافة دروس", content: , + canGoNext: () => true, + action: () => {}, }, { title: "إنشاء كويز", @@ -67,17 +51,24 @@ export const CourseManagementFlow = ({ courseID, isShown, onFinish }) => { }} /> ), + canGoNext: () => isQuizValid(course.quiz), + action: () => console.debug(course.quiz), }, ]; + const resetFlow = () => { + updateCourse(emptyState); + setModalKey(modalKey + 1); + onFinish(); + }; + return ( ); }; @@ -125,7 +116,7 @@ export const CoursesListing = ({ programID }) => { onMinus={() => { if (userIsSure()) manageCourses.removeLast(); }} - minusDisabled={manageCourses.collection.length == 0} + minusDisabled={manageCourses.collection.length === 0} /> ); diff --git a/src/components/ProgramManagement/LessonManagementFlow.jsx b/src/components/ProgramManagement/LessonManagementFlow.jsx index f8b0ca2..d3cd9a2 100644 --- a/src/components/ProgramManagement/LessonManagementFlow.jsx +++ b/src/components/ProgramManagement/LessonManagementFlow.jsx @@ -19,25 +19,7 @@ export const LessonManagementFlow = ({ lessonID, isShown, onFinish }) => { }; const [lesson, updateLesson] = useState(emptyState); // replace with api data - const canGoNext = (index) => { - switch (index) { - case 0: - return isLessonValid(lesson.content); - case 1: - return isQuizValid(lesson.quiz); - } - }; - - const runBeforeNext = (index) => { - switch (index) { - case 0: - console.debug(lesson.content); //TODO: replace with an api call - break; - case 1: - console.debug(lesson.quiz); //TODO: replace with an api call - break; - } - }; + const [modalKey, setModalKey] = useState(0); const flowStops = [ { @@ -50,6 +32,8 @@ export const LessonManagementFlow = ({ lessonID, isShown, onFinish }) => { } /> ), + canGoNext: () => isLessonValid(lesson.content), + action: () => console.debug(lesson.content), }, { title: "إنشاء كويز", @@ -61,17 +45,24 @@ export const LessonManagementFlow = ({ lessonID, isShown, onFinish }) => { }} /> ), + canGoNext: () => isQuizValid(lesson.quiz), + action: () => console.debug(lesson.quiz), }, ]; + const resetFlow = () => { + updateLesson(emptyState); + setModalKey(modalKey + 1); + onFinish(); + }; + return ( ); }; @@ -119,7 +110,7 @@ export const LessonsListing = ({ courseID }) => { onMinus={() => { if (userIsSure()) manageLessons.removeLast(); }} - minusDisabled={manageLessons.collection.length == 0} + minusDisabled={manageLessons.collection.length === 0} /> ); diff --git a/src/components/ProgramManagement/ManageQuiz.jsx b/src/components/ProgramManagement/ManageQuiz.jsx index 5e9c193..3d42142 100644 --- a/src/components/ProgramManagement/ManageQuiz.jsx +++ b/src/components/ProgramManagement/ManageQuiz.jsx @@ -32,8 +32,6 @@ const ManageQuiz = React.memo(({ existingQuestions, update }) => { type: "WRITTEN", fullMark: 0, }); - console.log(manageQuizzes.collection); - }} onMinus={() => { manageQuizzes.removeLast(); diff --git a/src/components/ProgramManagement/ProgramManagementFlow.jsx b/src/components/ProgramManagement/ProgramManagementFlow.jsx index 03f7f2f..4f27851 100644 --- a/src/components/ProgramManagement/ProgramManagementFlow.jsx +++ b/src/components/ProgramManagement/ProgramManagementFlow.jsx @@ -18,39 +18,20 @@ export const ProgramManagementFlow = ({ programID, isShown, onFinish }) => { const [program, updateProgram] = useState(emptyState); // replace with api data - const canGoNext = (index) => { - switch (index) { - case 0: - return true; //TODO: handle program creation - case 1: - return true; - case 2: - return isQuizValid(program.assessmentQuiz); - } - }; - - const runBeforeNext = (index) => { - switch (index) { - case 0: - console.debug("program"); //TODO: replace with an api call - break; - case 1: - console.debug("courses"); //TODO: replace with an api call - break; - case 2: - console.debug(program.quiz); //TODO: replace with an api call - break; - } - }; + const [modalKey, setModalKey] = useState(0); const flowStops = [ { title: "إنشاء برنامج جديد", content: , + canGoNext: () => true, + action: () => console.debug("program"), }, { title: "الكورسات", content: , + canGoNext: () => true, + action: () => console.debug("courses"), }, { title: "امتحان القبول", @@ -62,17 +43,24 @@ export const ProgramManagementFlow = ({ programID, isShown, onFinish }) => { }} /> ), + canGoNext: () => isQuizValid(program.assessmentQuiz), + action: () => console.debug(program.assessmentQuiz), }, ]; + const resetFlow = () => { + updateProgram(emptyState); + setModalKey(modalKey + 1); + onFinish(); + }; + return ( ); }; @@ -120,7 +108,7 @@ export const ProgramsListing = ({ userID }) => { onMinus={() => { if (userIsSure()) managePrograms.removeLast(); }} - minusDisabled={managePrograms.collection.length == 0} + minusDisabled={managePrograms.collection.length === 0} /> ); diff --git a/src/components/Shared/Flow/Flow.jsx b/src/components/Shared/Flow/Flow.jsx index 59b912b..414174a 100644 --- a/src/components/Shared/Flow/Flow.jsx +++ b/src/components/Shared/Flow/Flow.jsx @@ -3,14 +3,7 @@ import { SwitchTransition, CSSTransition } from "react-transition-group"; import "./Flow.scss"; import { Modal, ModalBody, ModalFooter, ModalHeader } from "reactstrap"; -export const FlowModal = ({ - flowStops, - isShown, - canGoNext, - runBeforeNext, - onFinish, - onCancel, -}) => { +export const FlowModal = ({ flowStops, isShown, onFinish, onCancel }) => { const [currentStop, updateCurrentStop] = useState(0); const firstStop = currentStop === 0; @@ -32,16 +25,17 @@ export const FlowModal = ({