99 IconButton ,
1010 Stack ,
1111 TextField ,
12+ ToggleButton ,
13+ ToggleButtonGroup ,
1214 Tooltip ,
1315 Typography ,
1416} from "@mui/material" ;
@@ -38,6 +40,8 @@ import {CourseUnitType} from "../Files/CourseUnitType"
3840import ProcessFilesUtils from "../Utils/ProcessFilesUtils" ;
3941import { FilesHandler } from "@/components/Files/FilesHandler" ;
4042import GroupSelector from "../Common/GroupSelector" ;
43+ import GroupIcon from '@mui/icons-material/Group' ;
44+ import AssignmentIcon from '@mui/icons-material/Assignment' ;
4145
4246export interface HomeworkAndFilesInfo {
4347 homework : HomeworkViewModel & { isModified ?: boolean } ,
@@ -119,6 +123,7 @@ const CourseHomeworkEditor: FC<{
119123 const [ description , setDescription ] = useState < string > ( loadedHomework . description ! )
120124 const [ selectedGroupId , setSelectedGroupId ] = useState ( loadedHomework . groupId )
121125 const [ courseStudents , setCourseStudents ] = useState < AccountDataDto [ ] > ( [ ] )
126+ const [ page , setPage ] = useState < "homework" | "group" > ( "homework" )
122127
123128 useEffect ( ( ) => {
124129 const loadCourseStudents = async ( ) => {
@@ -278,8 +283,21 @@ const CourseHomeworkEditor: FC<{
278283
279284 const isDisabled = hasErrors || ! isLoaded || taskHasErrors
280285
281- return (
282- < CardContent >
286+ return < Stack direction = { "row" } >
287+ < ToggleButtonGroup
288+ orientation = "vertical"
289+ value = { page }
290+ exclusive
291+ onChange = { ( _ , x ) => setPage ( x ) }
292+ >
293+ < ToggleButton value = "homework" >
294+ < AssignmentIcon color = { "primary" } />
295+ </ ToggleButton >
296+ < ToggleButton value = "group" >
297+ < GroupIcon color = { "primary" } />
298+ </ ToggleButton >
299+ </ ToggleButtonGroup >
300+ { page === "homework" && < CardContent >
283301 < Grid container xs = { "auto" } spacing = { 1 } direction = { "row" } justifyContent = { "space-between" }
284302 alignItems = { "center" } alignContent = { "center" } style = { { marginTop : - 24 } } >
285303 < Grid item >
@@ -306,15 +324,6 @@ const CourseHomeworkEditor: FC<{
306324 </ Grid >
307325 </ Grid >
308326 < Grid container >
309- < GroupSelector
310- courseId = { courseId }
311- courseStudents = { courseStudents }
312- onGroupIdChange = { ( groupId ?: number ) => setSelectedGroupId ( groupId ) }
313- selectedGroupId = { selectedGroupId }
314- choiceDisabled = { ! isNewHomework }
315- onGroupsUpdate = { props . onGroupsUpdate }
316- groups = { props . groups }
317- />
318327 { tags . includes ( TestTag ) &&
319328 < Grid item >
320329 < Alert severity = "info" variant = { "outlined" } >
@@ -402,8 +411,19 @@ const CourseHomeworkEditor: FC<{
402411 confirmationWord = { '' }
403412 confirmationText = { '' }
404413 />
405- </ CardContent >
406- )
414+ </ CardContent > }
415+ { page === "group" && < CardContent >
416+ < GroupSelector
417+ courseId = { courseId }
418+ courseStudents = { courseStudents }
419+ onGroupIdChange = { ( groupId ?: number ) => setSelectedGroupId ( groupId ) }
420+ selectedGroupId = { selectedGroupId }
421+ choiceDisabled = { ! isNewHomework }
422+ onGroupsUpdate = { props . onGroupsUpdate }
423+ groups = { props . groups }
424+ />
425+ </ CardContent > }
426+ </ Stack >
407427}
408428
409429const CourseHomeworkExperimental : FC < {
0 commit comments