Skip to content

Commit e0510e8

Browse files
authored
[frontend] feat: implement redirection to the Course page (Edit Homeworks mode) after course creating (#488)
1 parent 7dac483 commit e0510e8

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

hwproj.front/src/App.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ class App extends Component<{ navigate: any }, AppState> {
112112
<Route path="create_course" element={<CreateCourse/>}/>
113113
<Route path="courses/:courseId" element={<Course/>}/>
114114
<Route path="courses/:courseId/:tab" element={<Course/>}/>
115-
<Route path="courses/:courseId/edit" element={<EditCourse/>}/>
115+
<Route path="courses/:courseId/editHomeworks" element={<Course isReadingMode={false}/>}/>
116+
<Route path="courses/:courseId/editInfo" element={<EditCourse/>}/>
116117
<Route path="homework/:homeworkId/edit" element={<EditHomework/>}/>
117118
<Route path="task/:taskId/edit" element={<EditTask/>}/>
118119
<Route path="task/:taskId/:studentId"

hwproj.front/src/components/Courses/Course.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ function isAcceptableTabValue(str: string): str is TabValue {
2828
return str === "homeworks" || str === "stats" || str === "applications";
2929
}
3030

31+
interface ICourseProps {
32+
isReadingMode?: boolean;
33+
}
34+
3135
interface ICourseState {
3236
isFound: boolean;
3337
course: CourseViewModel;
@@ -52,7 +56,7 @@ const styles = makeStyles(() => ({
5256
},
5357
}))
5458

55-
const Course: React.FC = () => {
59+
const Course: React.FC<ICourseProps> = (props: ICourseProps) => {
5660
const {courseId, tab} = useParams()
5761
const [searchParams] = useSearchParams()
5862
const navigate = useNavigate()
@@ -66,7 +70,7 @@ const Course: React.FC = () => {
6670
mentors: [],
6771
acceptedStudents: [],
6872
newStudents: [],
69-
isReadingMode: true,
73+
isReadingMode: props.isReadingMode ?? true,
7074
studentSolutions: [],
7175
showQrCode: false
7276
})
@@ -235,7 +239,7 @@ const Course: React.FC = () => {
235239
</IconButton>
236240
}
237241
{isCourseMentor && isLecturer && !isReadingMode! && (
238-
<RouterLink to={`/courses/${courseId}/edit`}>
242+
<RouterLink to={`/courses/${courseId}/editInfo`}>
239243
<EditIcon fontSize="small"/>
240244
</RouterLink>
241245
)}

hwproj.front/src/components/Courses/CreateCourse.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {FC, FormEvent, useState} from "react";
1111
import GroupIcon from '@material-ui/icons/Group';
1212
import {makeStyles} from '@material-ui/core/styles';
1313
import Container from "@material-ui/core/Container";
14+
import {Navigate} from "react-router-dom";
1415

1516
interface ICreateCourseState {
1617
name: string;
@@ -59,7 +60,6 @@ const CreateCourse: FC = () => {
5960
...prevState,
6061
courseId: courseId.toString(),
6162
}))
62-
window.location.assign("/")
6363
}
6464
catch (e) {
6565
setCourse((prevState) => ({
@@ -78,8 +78,10 @@ const CreateCourse: FC = () => {
7878
</Typography>
7979
)
8080
}
81-
return (
82-
<Container component="main" maxWidth="xs">
81+
return course.courseId !== "" ?
82+
<Navigate to={`/courses/${course.courseId}/editHomeworks`}/>
83+
:
84+
(<Container component="main" maxWidth="xs">
8385
<div className={classes.paper}>
8486
<GroupIcon
8587
fontSize='large'

0 commit comments

Comments
 (0)