You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

239 lines
5.9 KiB

import { IoReturnUpBack } from "react-icons/io5"
const initialState = {
grade: 8,
groupId: 0,
name: '',
startDate: new Date(),
endDate: new Date(),
startTime: '19:0',
endTime: '',
description: '',
type: 'bank',
questionnaires: [
{
id:1,
name: 'عمومی',
fileUrl: '',
},
{
id:2,
name: 'اختصاصی',
fileUrl: '',
}
],
questionairesCourses: [
{
id: 0,
questionnaireId: 1,
questionsQuantity:20,
name: 'دینی',
coefficient: 4
},
{
id: 1,
questionnaireId: 2,
questionsQuantity:20,
name: 'ریاضی',
coefficient: 4,
},
],
answers: [
],
courseBank: [
{
id: 1,
title: 'ریاضی'
},
{
id: 2,
title: 'شیمی'
},
],
questionBank: [
{
questionId: 1,
courseId: 2,
title:'تترا فلورید اسید چنتا اسید داره؟',
answeredPercentage: '83%',
score: 1,
options: [
{
id: 1,
title:'تترا',
isAnswer: false
},
{
id: 2,
title:'سه ترا',
isAnswer: false
},
{
id: 3,
title:'هویج و گوجه فرنگی؟',
isAnswer: true
},
{
id: 4,
title:'فلور تا',
isAnswer: false
},
]
},
{
questionId: 2,
courseId: 2,
title:'asdaw dsfsdfiermc',
answeredPercentage: '83%',
score: 1,
options: [
{
id: 1,
title:'asdasd',
isAnswer: false
},
{
id: 2,
title:'asdasd2',
isAnswer: false
},
{
id: 3,
title:'',
isAnswer: true
},
{
id: 4,
title:'asdasd4',
isAnswer: false
},
]
},
{
questionId: 3,
courseId: 1,
title:'برای حل مساءل مربوط به مساحت زیر نمودار باید از کدام مبحث ریاضی استفاده کرد؟',
answeredPercentage: '43%',
score: 1,
options: [
{
id: 1,
title:'لگاریتم طبیعی',
isAnswer: false
},
{
id: 2,
title:'حد و مشتق',
isAnswer: false
},
{
id: 3,
title:'قدر مطلق',
isAnswer: false
},
{
id: 4,
title:'نخوندم 🗿',
isAnswer: true
},
]
},
],
courses: [
],
questions: [
]
}
export default function addExamReduser(state = initialState, { type, payload }) {
switch (type) {
case 'ADD_EXAM_GRADE_AND_GROUP':
return {
...state,
grade: payload.grade,
groupId: payload.groupId
}
case 'ADD_EXAM_DESCRIPTION':
return {
...state,
name: payload.name,
startDate: new Date(),
endDate: new Date(),
startTime: '19:0',
endTime: '',
description: payload.description,
type: payload.type
}
case 'ADD_EXAM_QUESTIONAIRES':
return {
...state,
questionnaires: [...state.questionnaires, payload]
}
case 'ADD_QUESTIONNAIRE_COURSES' :
return {
...state,
questionairesCourses: [
...state.questionairesCourses,
payload
]
}
case 'ADD_ANSWERS':
return{
...state,
answers: [
...state.answers, payload
]
}
case 'ADD_EXAM_COURSE':
return {
...state,
courses: [...state.courses, payload]
}
case 'REMOVE_EXAM_COURSE':
return {
...state,
courses: state.courses.filter(itm => itm.id !== payload.id)
}
case 'ADD_EXAM_QUESTIONS':
return {
...state,
questions : [...state.questions, payload]
}
case 'REMOVE_EXAM_QUESTIONS':
return {
...state,
questions: state.questions.filter(itm => itm.questionId !== payload.questionId)
}
case 'REMOVE_QUESTION_FROM_BANK':
return {
...state,
questionBank: state.questionBank.filter(itm => itm.questionId !== payload.questionId)
}
case 'GET_QUESTION_BACK_TO_BANK':
return {
...state,
questionBank : [...state.questionBank, payload]
}
default:
return state;
}
}