@@ -22,7 +22,6 @@ import {FC, useEffect, useState} from "react"
2222import Utils from "services/Utils" ;
2323import {
2424 HomeworkViewModel , ActionOptions , HomeworkTaskViewModel , PostTaskViewModel , AccountDataDto , GroupViewModel ,
25- WorkspaceViewModel , CourseViewModel
2625} from "@/api" ;
2726import ApiSingleton from "../../api/ApiSingleton" ;
2827import Tags from "../Common/Tags" ;
@@ -46,7 +45,6 @@ import GroupIcon from '@mui/icons-material/Group';
4645import AssignmentIcon from '@mui/icons-material/Assignment' ;
4746import ErrorsHandler from "@/components/Utils/ErrorsHandler" ;
4847import { enqueueSnackbar } from "notistack" ;
49- import { getSelectedCourseView } from "../Courses/MentorWorkspaceUtils" ;
5048
5149export interface HomeworkAndFilesInfo {
5250 homework : HomeworkViewModel & { isModified ?: boolean } ,
@@ -129,29 +127,19 @@ const CourseHomeworkEditor: FC<{
129127 const [ description , setDescription ] = useState < string > ( loadedHomework . description ! )
130128 const [ selectedGroupId , setSelectedGroupId ] = useState ( loadedHomework . groupId )
131129 const [ courseStudents , setCourseStudents ] = useState < AccountDataDto [ ] > ( [ ] )
132- const [ course , setCourse ] = useState < CourseViewModel | undefined > ( undefined )
133- const [ mentorWorkspace , setMentorWorkspace ] = useState < WorkspaceViewModel | undefined > ( undefined )
134130 const [ page , setPage ] = useState < "homework" | "group" > ( "homework" )
135131
136132 useEffect ( ( ) => {
137- const loadMentorWorkspace = async ( ) => {
133+ const loadCourseStudents = async ( ) => {
138134 try {
139- const [ courseData , mentorWorkspace ] = await Promise . all ( [
140- ApiSingleton . coursesApi . coursesGetAllCourseData ( courseId ) ,
141- isNewHomework
142- ? ApiSingleton . coursesApi . coursesGetMentorWorkspace ( courseId , props . mentorId )
143- . catch ( ( ) => undefined )
144- : Promise . resolve ( undefined )
145- ] ) ;
135+ const courseData = await ApiSingleton . coursesApi . coursesGetAllCourseData ( courseId ) ;
146136 setCourseStudents ( courseData . course ?. acceptedStudents || [ ] )
147- setCourse ( courseData . course )
148- setMentorWorkspace ( mentorWorkspace )
149137 } catch ( error ) {
150138 console . error ( 'Failed to load course data:' , error )
151139 }
152140 }
153- loadMentorWorkspace ( )
154- } , [ courseId , props . mentorId , isNewHomework ] )
141+ loadCourseStudents ( )
142+ } , [ courseId ] )
155143
156144 const [ hasErrors , setHasErrors ] = useState < boolean > ( false )
157145
@@ -242,62 +230,6 @@ const CourseHomeworkEditor: FC<{
242230 props . onUpdate ( { homework : loadedHomework , isDeleted : true } )
243231 }
244232
245- const updateMentorFilter = async ( update : {
246- newGroup ?: GroupViewModel ,
247- newHomework ?: HomeworkViewModel
248- } ) => {
249- if ( ! course || ! mentorWorkspace ) return ;
250-
251- const { newGroup, newHomework} = update ;
252- const selectedCourseView = getSelectedCourseView ( course , mentorWorkspace ) ;
253- let updatedGroups = selectedCourseView . selectedGroups ;
254- let updatedHomeworks = selectedCourseView . selectedHomeworks ;
255- let hasChanges = false ;
256-
257- if ( newGroup ?. id !== undefined &&
258- selectedCourseView . selectedGroups . length > 0 &&
259- ! selectedCourseView . selectedGroups . some ( g => g . id === newGroup . id ) ) {
260- updatedGroups = [ ...selectedCourseView . selectedGroups , newGroup ] ;
261- hasChanges = true ;
262- }
263-
264- if ( newHomework ?. id !== undefined &&
265- selectedCourseView . selectedHomeworks . length > 0 &&
266- ! selectedCourseView . selectedHomeworks . some ( h => h . id === newHomework . id ) ) {
267- updatedHomeworks = [ ...selectedCourseView . selectedHomeworks , newHomework ] ;
268- hasChanges = true ;
269- }
270-
271- setCourse ( prev => prev ? ( {
272- ...prev ,
273- groups : newGroup ?. id !== undefined && ! prev . groups ?. some ( g => g . id === newGroup . id )
274- ? [ ...( prev . groups ?? [ ] ) , newGroup ]
275- : prev . groups ,
276- homeworks : newHomework ?. id !== undefined && ! prev . homeworks ?. some ( h => h . id === newHomework . id )
277- ? [ ...( prev . homeworks ?? [ ] ) , newHomework ]
278- : prev . homeworks ,
279- } ) : prev ) ;
280-
281- if ( ! hasChanges ) return ;
282-
283- await ApiSingleton . coursesApi . coursesEditMentorWorkspace (
284- courseId ,
285- props . mentorId ,
286- {
287- homeworkIds : updatedHomeworks . map ( h => h . id ) . filter ( ( id ) : id is number => id !== undefined ) ,
288- studentIds : selectedCourseView . selectedStudents . map ( s => s . userId ) . filter ( ( id ) : id is string => id !== undefined ) ,
289- groupIds : updatedGroups . map ( g => g . id ) . filter ( ( id ) : id is number => id !== undefined ) ,
290- }
291- ) ;
292-
293- setMentorWorkspace ( prev => prev ? ( {
294- ...prev ,
295- homeworks : updatedHomeworks ,
296- students : selectedCourseView . selectedStudents ,
297- groups : updatedGroups
298- } ) : prev ) ;
299- }
300-
301233 const getDeleteMessage = ( homeworkName : string , filesInfo : IFileInfo [ ] ) => {
302234 let message = `Вы точно хотите удалить задание "${ homeworkName } "?` ;
303235 if ( filesInfo . length > 0 ) {
@@ -341,10 +273,6 @@ const CourseHomeworkEditor: FC<{
341273 ? await ApiSingleton . homeworksApi . homeworksAddHomework ( courseId ! , update )
342274 : await ApiSingleton . homeworksApi . homeworksUpdateHomework ( + homeworkId ! , update )
343275
344- if ( isNewHomework && updatedHomework . value ) {
345- await updateMentorFilter ( { newHomework : updatedHomework . value } ) ;
346- }
347-
348276 const updatedHomeworkId = updatedHomework . value ! . id !
349277 await handleFilesChange (
350278 courseId , CourseUnitType . Homework , updatedHomeworkId ,
@@ -516,8 +444,7 @@ const CourseHomeworkEditor: FC<{
516444 selectedGroupId = { selectedGroupId }
517445 choiceDisabled = { ! isNewHomework }
518446 onGroupsUpdate = { props . onGroupsUpdate }
519- onCreateNewGroup = { ( newGroup : GroupViewModel ) => updateMentorFilter ( { newGroup} ) }
520- groups = { mentorWorkspace ?. groups ?? props . groups }
447+ groups = { props . groups }
521448 />
522449 </ CardContent >
523450 { ! isNewHomework && ! isPublished &&
0 commit comments