Skip to content

Commit

Permalink
добавляет переключение между задачами уровня
Browse files Browse the repository at this point in the history
  • Loading branch information
semant1cs committed Dec 17, 2023
1 parent db402f4 commit f2835ea
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 18 deletions.
35 changes: 22 additions & 13 deletions frontend/src/components/mapMenu/UIMapMenu/Level/MenuItem.tsx
Original file line number Diff line number Diff line change
@@ -1,36 +1,45 @@
import React from 'react';
import levelStore from "../../../../store/levelStore.ts";
import Theory from "./TaskTypes/Theory.tsx";
import Video from "./TaskTypes/Video.tsx";
import Test from "./TaskTypes/Test.tsx";
import {observer} from "mobx-react-lite";

interface IMenuItemProps {
index: number,
indexType: number
indexType: number,
setLevelIndex: (index: number) => void,
indexSelectedItem: number,
}

const MenuItem: React.FC<IMenuItemProps> = observer(({index, indexType}) => {
const MenuItem: React.FC<IMenuItemProps> = ({index, indexType, setLevelIndex, indexSelectedItem}) => {
function renderRequiredElement(indexType: number, index: number) {
switch (indexType) {
case (0):
return <Theory index={index} indexChoosedItem={levelStore.chosenTaskIndex}
changeIndexChoosedItem={() => levelStore.setChosenTaskIndex(levelStore.chosenTaskIndex)}/>
return <Theory
index={index}
indexChoosedItem={indexSelectedItem}
changeIndexChoosedItem={() => setLevelIndex(index)}
/>
case (1):
return <Test index={index} indexChoosedItem={levelStore.chosenTaskIndex}
changeIndexChoosedItem={() => levelStore.setChosenTaskIndex(levelStore.chosenTaskIndex)}/>
return <Test
index={index}
indexChoosedItem={indexSelectedItem}
changeIndexChoosedItem={() => setLevelIndex(index)}
/>
case (2):
return <Video index={index}/>
return <Video
index={index}
/>
}
}

return (
<div key={index} className="menu-item" onClick={() => {
levelStore.setChosenTaskIndex(index)
}}>
<div key={index} className="menu-item"
onClick={() => {
setLevelIndex(index)
}}>
{renderRequiredElement(indexType, index)}
</div>
);
});
};

export default MenuItem;
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import HeaderModal from "../../../../UIComponents/modalWindow/HeaderModal.tsx";

import MenuItem from "./MenuItem.tsx";

import {ITaskType, ITheoryUnitType, IQuestionType} from "../../../../types/TaskType.ts";
import {ITaskType, ITheoryUnitType} from "../../../../types/TaskType.ts";
import {IMenuItemType} from "../../../../types/MenuItemType.ts";
import {ILevelType} from "../../../../types/LevelType.ts";

Expand All @@ -25,11 +25,13 @@ const ModalLevelBody: React.FC<IModalLevelProps> = ({level}) => {
{
type: "theory",
length: level.theory_units ? level.theory_units.length : 0,
// @ts-ignore
item: level?.theory_units
},
{
length: level.task_units ? level?.task_units.length : 0,
type: "tests",
// @ts-ignore
item: level?.task_units
}
]
Expand Down Expand Up @@ -57,7 +59,7 @@ const ModalLevelBody: React.FC<IModalLevelProps> = ({level}) => {
for (let i = 0; i < menuItems.length; i++) {
for (let j = 0; j < menuItems[i].length; j++) {
index++
taskBlocks.push(<MenuItem indexType={i} index={index} key={index}/>)
taskBlocks.push(<MenuItem indexType={i} index={index} key={index} indexSelectedItem={levelIndex} setLevelIndex={setLevelIndex}/>)

}
}
Expand Down Expand Up @@ -91,7 +93,7 @@ const ModalLevelBody: React.FC<IModalLevelProps> = ({level}) => {

{question.answer_options.map((answer) => {
return (
<div className="question-answer-option">
<div className="question-answer-option" key={answer.id}>
<input id={answer.answer} type="radio" value="question"/>
<label htmlFor={answer.answer}>{answer.answer}</label>
</div>
Expand All @@ -117,7 +119,7 @@ const ModalLevelBody: React.FC<IModalLevelProps> = ({level}) => {
return renderTheory(theoryUnits ? theoryUnits[levelIndex] : null)
}
if (menuItems && levelIndex <= menuItems[0].length + menuItems[1].length) {
return renderTest(taskUnits ? taskUnits[levelIndex - menuItems[0].length] : null)
return renderTest(taskUnits ? taskUnits[levelIndex] : null)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const UserInfo: React.FC<IPropTypes> = ({employee}) => {
<div>
<img
className="user-profile-photo"
src="https://clck.ru/36wj9g"
src="https://clck.ru/37AFXb"
alt="Фото профиля"
/>
<div className="user-info-fields">
Expand Down

0 comments on commit f2835ea

Please sign in to comment.