11import * as React from 'react' ;
22import Typography from '@material-ui/core/Typography' ;
3- import IconButton from '@material-ui/core/IconButton'
4- import DeleteIcon from '@material-ui/icons/Delete'
53import ExpandMoreIcon from '@material-ui/icons/ExpandMore' ;
6- import EditIcon from '@material-ui/icons/Edit'
7- import { HomeworkTaskViewModel } from "../../api" ;
8- import { Link as RouterLink } from 'react-router-dom'
9- import ApiSingleton from "../../api/ApiSingleton" ;
10- import { Accordion , AccordionDetails , AccordionSummary , Button , Grid , Tooltip } from '@material-ui/core' ;
11- import { FC , useState } from "react" ;
4+ import { HomeworkTaskViewModel } from "@/api" ;
5+ import { Accordion , AccordionDetails , AccordionSummary , Grid , Tooltip } from '@material-ui/core' ;
6+ import { FC } from "react" ;
127import { makeStyles } from '@material-ui/core/styles' ;
13- import DeletionConfirmation from "../DeletionConfirmation" ;
148import { Chip , Stack } from "@mui/material" ;
159import Utils from "../../services/Utils" ;
1610import { getTip } from "../Common/HomeworkTags" ;
1711import StarIcon from '@mui/icons-material/Star' ;
1812import { MarkdownPreview } from "../Common/MarkdownEditor" ;
13+ import TaskCriteria from "@/components/Tasks/TaskCriteria" ;
1914
2015interface ITaskProp {
2116 task : HomeworkTaskViewModel ,
@@ -46,21 +41,6 @@ const Task: FC<ITaskProp> = (props) => {
4641 const publicationDateIsSet = ! props . task . publicationDateNotSet
4742 const deadlineDateIsSet = ! props . task . deadlineDateNotSet
4843
49- const [ isOpenDialogDeleteTask , setIsOpenDialogDeleteTask ] = useState < boolean > ( false )
50-
51- const openDialogDeleteTask = ( ) => {
52- setIsOpenDialogDeleteTask ( true )
53- }
54-
55- const closeDialogDeleteTask = ( ) => {
56- setIsOpenDialogDeleteTask ( false )
57- }
58-
59- const deleteTask = async ( ) => {
60- await ApiSingleton . tasksApi . tasksDeleteTask ( props . task . id ! )
61- props . onDeleteClick ( )
62- }
63-
6444 const { task} = props
6545
6646 const publicationDateString = Utils . renderReadableDate ( publicationDate )
@@ -116,7 +96,7 @@ const Task: FC<ITaskProp> = (props) => {
11696 }
11797 { task . hasDeadline && deadlineDateIsSet &&
11898 < Grid item >
119- < Tooltip
99+ < Tooltip
120100 arrow
121101 title = { task . isDeadlineStrict ? "Нельзя публиковать решения после дедлайна" : "Дедлайн" }
122102 >
@@ -139,16 +119,6 @@ const Task: FC<ITaskProp> = (props) => {
139119 < Chip variant = "outlined" label = "без дедлайна" />
140120 </ Grid >
141121 }
142- { props . forMentor && ! props . isReadingMode &&
143- < Grid item >
144- < IconButton aria-label = "Delete" onClick = { openDialogDeleteTask } >
145- < DeleteIcon fontSize = "small" />
146- </ IconButton >
147- < RouterLink to = { '/task/' + task . id ! . toString ( ) + '/edit' } >
148- < EditIcon fontSize = "small" />
149- </ RouterLink >
150- </ Grid >
151- }
152122 </ Grid >
153123 </ div >
154124 </ AccordionSummary >
@@ -157,31 +127,10 @@ const Task: FC<ITaskProp> = (props) => {
157127 < Typography variant = "body1" >
158128 < MarkdownPreview value = { task . description ! } />
159129 </ Typography >
160- { props . showForCourse && props . forStudent &&
161- < div style = { { marginTop : '15px' } } >
162- < Button
163- style = { { width : '150px' } }
164- size = "small"
165- variant = "contained"
166- color = "primary"
167- onClick = { ( ) => window . location . assign ( "/task/" + task . id ! . toString ( ) ) }
168- >
169- Решения
170- </ Button >
171- </ div >
172- }
130+ < TaskCriteria task = { task } />
173131 </ Grid >
174132 </ AccordionDetails >
175133 </ Accordion >
176- < DeletionConfirmation
177- onCancel = { closeDialogDeleteTask }
178- onSubmit = { deleteTask }
179- isOpen = { isOpenDialogDeleteTask }
180- dialogTitle = { 'Удаление задачи' }
181- dialogContentText = { `Вы точно хотите удалить задачу "${ task . title } "?` }
182- confirmationWord = { '' }
183- confirmationText = { '' }
184- />
185134 </ div >
186135 ) ;
187136}
0 commit comments