|
|
@ -26,6 +26,7 @@ import './leftView.css'
|
|
|
|
|
|
|
|
|
|
|
|
import CodeEvaluateMultiLevelAnswerUnlock from './CodeEvaluateMultiLevelAnswerUnlock'
|
|
|
|
import CodeEvaluateMultiLevelAnswerUnlock from './CodeEvaluateMultiLevelAnswerUnlock'
|
|
|
|
import MUIDialogStyleUtil from '../component/MUIDialogStyleUtil'
|
|
|
|
import MUIDialogStyleUtil from '../component/MUIDialogStyleUtil'
|
|
|
|
|
|
|
|
import moment from 'moment';
|
|
|
|
// http://danilowoz.com/create-react-content-loader/
|
|
|
|
// http://danilowoz.com/create-react-content-loader/
|
|
|
|
const MyLoader = () => (
|
|
|
|
const MyLoader = () => (
|
|
|
|
<ContentLoader
|
|
|
|
<ContentLoader
|
|
|
@ -35,16 +36,16 @@ const MyLoader = () => (
|
|
|
|
primaryColor={"#000000"}
|
|
|
|
primaryColor={"#000000"}
|
|
|
|
secondaryColor={"#ecebeb"}
|
|
|
|
secondaryColor={"#ecebeb"}
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<rect x="0" y="10" rx="3" ry="3" width="320" height="6.4" />
|
|
|
|
<rect x="0" y="10" rx="3" ry="3" width="320" height="6.4" />
|
|
|
|
<rect x="0" y="35" rx="3" ry="3" width="85" height="10" />
|
|
|
|
<rect x="0" y="35" rx="3" ry="3" width="85" height="10" />
|
|
|
|
<rect x="0" y="60" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="60" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="80" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="80" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="100" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="100" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="120" rx="3" ry="3" width="101" height="6.4" />
|
|
|
|
<rect x="0" y="120" rx="3" ry="3" width="101" height="6.4" />
|
|
|
|
|
|
|
|
|
|
|
|
<rect x="0" y="145" rx="3" ry="3" width="65" height="10" />
|
|
|
|
<rect x="0" y="145" rx="3" ry="3" width="65" height="10" />
|
|
|
|
<rect x="0" y="170" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="170" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="190" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="190" rx="3" ry="3" width="350" height="6.4" />
|
|
|
|
<rect x="0" y="210" rx="3" ry="3" width="201" height="6.4" />
|
|
|
|
<rect x="0" y="210" rx="3" ry="3" width="201" height="6.4" />
|
|
|
|
</ContentLoader>
|
|
|
|
</ContentLoader>
|
|
|
|
)
|
|
|
|
)
|
|
|
@ -59,7 +60,7 @@ const styles = MUIDialogStyleUtil.getTwoButtonStyle(
|
|
|
|
width: '36px',
|
|
|
|
width: '36px',
|
|
|
|
height: '36px',
|
|
|
|
height: '36px',
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
@ -86,7 +87,7 @@ class LeftView extends Component {
|
|
|
|
// style={{marginRight: '6px'}}
|
|
|
|
// style={{marginRight: '6px'}}
|
|
|
|
// />,
|
|
|
|
// />,
|
|
|
|
// <Button
|
|
|
|
// <Button
|
|
|
|
// variant="raised"
|
|
|
|
// variant="raised"
|
|
|
|
// label="确定"
|
|
|
|
// label="确定"
|
|
|
|
// primary={true}
|
|
|
|
// primary={true}
|
|
|
|
// onClick={handleDialogReadAnswer}
|
|
|
|
// onClick={handleDialogReadAnswer}
|
|
|
@ -97,14 +98,14 @@ class LeftView extends Component {
|
|
|
|
// isMultiLevelAnswer = true
|
|
|
|
// isMultiLevelAnswer = true
|
|
|
|
const is_teacher = user.is_teacher
|
|
|
|
const is_teacher = user.is_teacher
|
|
|
|
|
|
|
|
|
|
|
|
let contentText = is_teacher ?
|
|
|
|
let contentText = is_teacher ?
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
|
<p>{`已经过职业认证的教师可以免金币查看答案哟~`}</p>
|
|
|
|
<p>{`已经过职业认证的教师可以免金币查看答案哟~`}</p>
|
|
|
|
<p>{`将扣除${challenge.score}点金币,是否确认查看答案`}</p>
|
|
|
|
<p>{`将扣除${challenge.score}点金币,是否确认查看答案`}</p>
|
|
|
|
<p><a onClick={()=>this.goToCertification()}
|
|
|
|
<p><a onClick={()=>this.goToCertification()}
|
|
|
|
style={{textDecoration: 'underline', color: '#4CACFF'}}>立即认证</a></p>
|
|
|
|
style={{textDecoration: 'underline', color: '#4CACFF'}}>立即认证</a></p>
|
|
|
|
</React.Fragment>
|
|
|
|
</React.Fragment>
|
|
|
|
:
|
|
|
|
:
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
|
<p>{`先查看参考答案,再通过评测的学生,实训作业有可能是零分哦~`}</p>
|
|
|
|
<p>{`先查看参考答案,再通过评测的学生,实训作业有可能是零分哦~`}</p>
|
|
|
|
<p>{`将扣除${challenge.score}点金币,是否确认查看答案`}</p>
|
|
|
|
<p>{`将扣除${challenge.score}点金币,是否确认查看答案`}</p>
|
|
|
@ -112,13 +113,13 @@ class LeftView extends Component {
|
|
|
|
|
|
|
|
|
|
|
|
// 多级别解锁
|
|
|
|
// 多级别解锁
|
|
|
|
if (isMultiLevelAnswer) {
|
|
|
|
if (isMultiLevelAnswer) {
|
|
|
|
// power === 0 &&
|
|
|
|
// power === 0 &&
|
|
|
|
contentText = ( is_teacher ) ?
|
|
|
|
contentText = ( is_teacher ) ?
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
|
<p>{`已经过职业认证的教师可以免金币查看答案哟~`}</p>
|
|
|
|
<p>{`已经过职业认证的教师可以免金币查看答案哟~`}</p>
|
|
|
|
<p><a style={{textDecoration: 'underline'}} onClick={()=>this.goToCertification()}
|
|
|
|
<p><a style={{textDecoration: 'underline'}} onClick={()=>this.goToCertification()}
|
|
|
|
style={{ color: '#1890ff', 'margin-top': '6px', display: 'inline-block'}}>立即认证</a></p>
|
|
|
|
style={{ color: '#1890ff', 'margin-top': '6px', display: 'inline-block'}}>立即认证</a></p>
|
|
|
|
<CodeEvaluateMultiLevelAnswerUnlock
|
|
|
|
<CodeEvaluateMultiLevelAnswerUnlock
|
|
|
|
ref="answerUnlock" lockedAnswers={lockedAnswers} unlockedAnswers={unlockedAnswers}
|
|
|
|
ref="answerUnlock" lockedAnswers={lockedAnswers} unlockedAnswers={unlockedAnswers}
|
|
|
|
challenge={challenge}
|
|
|
|
challenge={challenge}
|
|
|
|
>
|
|
|
|
>
|
|
|
@ -128,7 +129,7 @@ class LeftView extends Component {
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
|
<p>{`先查看参考答案,再通过评测的学生,实训作业将被扣分`}</p>
|
|
|
|
<p>{`先查看参考答案,再通过评测的学生,实训作业将被扣分`}</p>
|
|
|
|
{/* { MultiLevelUnlockTable } */}
|
|
|
|
{/* { MultiLevelUnlockTable } */}
|
|
|
|
<CodeEvaluateMultiLevelAnswerUnlock
|
|
|
|
<CodeEvaluateMultiLevelAnswerUnlock
|
|
|
|
ref="answerUnlock" lockedAnswers={lockedAnswers} unlockedAnswers={unlockedAnswers}
|
|
|
|
ref="answerUnlock" lockedAnswers={lockedAnswers} unlockedAnswers={unlockedAnswers}
|
|
|
|
challenge={challenge}
|
|
|
|
challenge={challenge}
|
|
|
|
>
|
|
|
|
>
|
|
|
@ -136,13 +137,13 @@ class LeftView extends Component {
|
|
|
|
</React.Fragment>;
|
|
|
|
</React.Fragment>;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
|
|
|
|
|
|
|
|
{ is_teacher ? <Button size="small" variant="raised" style={{ marginRight: '20px'}}
|
|
|
|
{ is_teacher ? <Button size="small" variant="raised" style={{ marginRight: '20px'}}
|
|
|
|
onClick={()=>this.goToCertification()} color="primary">
|
|
|
|
onClick={()=>this.goToCertification()} color="primary">
|
|
|
|
{ '立即认证' }
|
|
|
|
{ '立即认证' }
|
|
|
|
</Button> : ''}
|
|
|
|
</Button> : ''}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
@ -150,7 +151,7 @@ class LeftView extends Component {
|
|
|
|
open={dialogOpen}
|
|
|
|
open={dialogOpen}
|
|
|
|
disableEscapeKeyDown={true}
|
|
|
|
disableEscapeKeyDown={true}
|
|
|
|
onClose={handleDialogClose}
|
|
|
|
onClose={handleDialogClose}
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<DialogTitle id="alert-dialog-title">{"提示"}</DialogTitle>
|
|
|
|
<DialogTitle id="alert-dialog-title">{"提示"}</DialogTitle>
|
|
|
|
<DialogContent id="dialog-content" >
|
|
|
|
<DialogContent id="dialog-content" >
|
|
|
|
<DialogContentText id="alert-dialog-description" style={{textAlign: 'center'}}>
|
|
|
|
<DialogContentText id="alert-dialog-description" style={{textAlign: 'center'}}>
|
|
|
@ -159,32 +160,32 @@ class LeftView extends Component {
|
|
|
|
</DialogContent>
|
|
|
|
</DialogContent>
|
|
|
|
{/* http://localhost:3000/account/professional_certification */}
|
|
|
|
{/* http://localhost:3000/account/professional_certification */}
|
|
|
|
<DialogActions id="dialog-actions">
|
|
|
|
<DialogActions id="dialog-actions">
|
|
|
|
|
|
|
|
|
|
|
|
<Button onClick={handleDialogClose} color="primary" className={`${classes.button} ${classes.buttonGray}`}>
|
|
|
|
<Button onClick={handleDialogClose} color="primary" className={`${classes.button} ${classes.buttonGray}`}>
|
|
|
|
取消
|
|
|
|
取消
|
|
|
|
</Button>
|
|
|
|
</Button>
|
|
|
|
{/* variant={ is_teacher ? "flat" : "raised"} */}
|
|
|
|
{/* variant={ is_teacher ? "flat" : "raised"} */}
|
|
|
|
<Button size="medium" variant={"raised"}
|
|
|
|
<Button size="medium" variant={"raised"}
|
|
|
|
className={`${classes.button} `}
|
|
|
|
className={`${classes.button} `}
|
|
|
|
onClick={() => handleDialogReadAnswer(this.refs.answerUnlock ? this.refs.answerUnlock.getSelectedId() : '')}
|
|
|
|
onClick={() => handleDialogReadAnswer(this.refs.answerUnlock ? this.refs.answerUnlock.getSelectedId() : '')}
|
|
|
|
color="primary" autoFocus>
|
|
|
|
color="primary" autoFocus>
|
|
|
|
{ is_teacher ? '继续查看' : '确定'}
|
|
|
|
{ is_teacher ? '继续查看' : '确定'}
|
|
|
|
</Button>
|
|
|
|
</Button>
|
|
|
|
</DialogActions>
|
|
|
|
</DialogActions>
|
|
|
|
|
|
|
|
|
|
|
|
</Dialog>
|
|
|
|
</Dialog>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="-fit -layout-v">
|
|
|
|
<div className="-fit -layout-v">
|
|
|
|
|
|
|
|
|
|
|
|
<div className="-layout-v -flex -bg-white -task-ml80">
|
|
|
|
<div className="-layout-v -flex -bg-white -task-ml80">
|
|
|
|
|
|
|
|
|
|
|
|
{/*新界面关卡名称显示、关卡金币显示*/}
|
|
|
|
{/*新界面关卡名称显示、关卡金币显示*/}
|
|
|
|
<div id="task_name_section" className="task_name_section">
|
|
|
|
<div id="task_name_section" className="task_name_section">
|
|
|
|
|
|
|
|
|
|
|
|
{ loading ? "" :
|
|
|
|
{ loading ? "" :
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
|
<Tooltip title={ "点击查看全部任务" } disableFocusListener={true}>
|
|
|
|
<Tooltip title={ "点击查看全部任务" } disableFocusListener={true}>
|
|
|
|
<IconButton color="default" mini={''} aria-label="edit" className={classes.iconButton}
|
|
|
|
<IconButton color="default" mini={''} aria-label="edit" className={classes.iconButton}
|
|
|
|
onClick={onDrawerButtonClick}>
|
|
|
|
onClick={onDrawerButtonClick}>
|
|
|
|
<i className={ "fa font-18 fa-list-ul" }></i>
|
|
|
|
<i className={ "fa font-18 fa-list-ul" }></i>
|
|
|
|
</IconButton>
|
|
|
|
</IconButton>
|
|
|
@ -223,15 +224,15 @@ class LeftView extends Component {
|
|
|
|
<div id="tab_con_1" className="tab-info" style={ tabIndex === 0 ? {display: 'block'} : {display: 'none'} }>
|
|
|
|
<div id="tab_con_1" className="tab-info" style={ tabIndex === 0 ? {display: 'block'} : {display: 'none'} }>
|
|
|
|
<div className="fit -scroll">
|
|
|
|
<div className="fit -scroll">
|
|
|
|
<div className="-layout-v -fit">
|
|
|
|
<div className="-layout-v -fit">
|
|
|
|
{ loading ?
|
|
|
|
{ loading ?
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li break_word markdown-body editormd-html-preview"
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li break_word markdown-body editormd-html-preview"
|
|
|
|
unselectable="on">
|
|
|
|
unselectable="on">
|
|
|
|
<CircularProgress size={40} thickness={3} className="circularProgress"
|
|
|
|
<CircularProgress size={40} thickness={3} className="circularProgress"
|
|
|
|
style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40% !important', display: 'block' }}/>
|
|
|
|
style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40% !important', display: 'block' }}/>
|
|
|
|
</div> : ""
|
|
|
|
</div> : ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li break_word markdown-body editormd-html-preview"
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li break_word markdown-body editormd-html-preview"
|
|
|
|
unselectable="on" id="game_task_pass" style={loading ? {display:'none'} : {}}>
|
|
|
|
unselectable="on" id="game_task_pass" style={loading ? {display:'none'} : {}}>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -242,7 +243,7 @@ class LeftView extends Component {
|
|
|
|
<div className="fit -scroll">
|
|
|
|
<div className="fit -scroll">
|
|
|
|
<div className="-layout-v -fit">
|
|
|
|
<div className="-layout-v -fit">
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li markdown-body editormd-html-preview" unselectable="on" id="game_ready_knowledge">
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li markdown-body editormd-html-preview" unselectable="on" id="game_ready_knowledge">
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -253,8 +254,8 @@ class LeftView extends Component {
|
|
|
|
<div className="-layout-v -fit" style={{ overflowY: 'scroll' }}>
|
|
|
|
<div className="-layout-v -fit" style={{ overflowY: 'scroll' }}>
|
|
|
|
{/* 只读markdown的写法 markdownToHTML 这个接口生成的markdown没有setMarkdown接口
|
|
|
|
{/* 只读markdown的写法 markdownToHTML 这个接口生成的markdown没有setMarkdown接口
|
|
|
|
<textarea style={{display:'none'}} id="editorMd_contents" value={gameAnswer}></textarea>*/}
|
|
|
|
<textarea style={{display:'none'}} id="editorMd_contents" value={gameAnswer}></textarea>*/}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ (!unlockedAnswers || unlockedAnswers.length === 0) && (!lockedAnswers || lockedAnswers.length === 0) &&
|
|
|
|
{ (!unlockedAnswers || unlockedAnswers.length === 0) && (!lockedAnswers || lockedAnswers.length === 0) &&
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li" id="game_answer_show"
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li" id="game_answer_show"
|
|
|
|
style={{ display: st === 0 ? 'block' : 'none' }}>
|
|
|
|
style={{ display: st === 0 ? 'block' : 'none' }}>
|
|
|
@ -283,8 +284,10 @@ class LeftView extends Component {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.multiLevelAnswer .status{
|
|
|
|
.multiLevelAnswer .status{
|
|
|
|
color: #CDCDCD;
|
|
|
|
color: #CDCDCD;
|
|
|
|
flex: 0 0 45px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.multiLevelAnswer .lock-time{
|
|
|
|
|
|
|
|
margin-right: 15px;
|
|
|
|
|
|
|
|
}
|
|
|
|
.markdown-body ol, .markdown-body ul {
|
|
|
|
.markdown-body ol, .markdown-body ul {
|
|
|
|
padding-left: 2.5em;
|
|
|
|
padding-left: 2.5em;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -292,13 +295,17 @@ class LeftView extends Component {
|
|
|
|
|
|
|
|
|
|
|
|
<div className="multiLevelAnswer">
|
|
|
|
<div className="multiLevelAnswer">
|
|
|
|
{ unlockedAnswers && unlockedAnswers.map((item, index) => {
|
|
|
|
{ unlockedAnswers && unlockedAnswers.map((item, index) => {
|
|
|
|
|
|
|
|
const {name, contents, view_time} = item;
|
|
|
|
return <div className="anwserSection">
|
|
|
|
return <div className="anwserSection">
|
|
|
|
<div className="df">
|
|
|
|
<div className="df">
|
|
|
|
<div className="level">级别{index + 1}:</div>
|
|
|
|
<div className="level">级别{index + 1}:</div>
|
|
|
|
<div className="name">{item.name}</div>
|
|
|
|
<div className="name">{name}</div>
|
|
|
|
<div className="status">已解锁</div>
|
|
|
|
<div className="status">
|
|
|
|
|
|
|
|
<span className="lock-time">{view_time ? moment(view_time).format('YYYY-MM-DD HH:mm') : ''}</span>
|
|
|
|
|
|
|
|
已解锁
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className="contents markdown-body" dangerouslySetInnerHTML={{__html: markdownToHTML(item.contents)}}>
|
|
|
|
<div className="contents markdown-body" dangerouslySetInnerHTML={{__html: markdownToHTML(contents)}}>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
})}
|
|
|
|
})}
|
|
|
@ -308,19 +315,19 @@ class LeftView extends Component {
|
|
|
|
<div className="df">
|
|
|
|
<div className="df">
|
|
|
|
<div className="level">级别{index + 1 + (unlockedAnswers ? unlockedAnswers.length : 0)}:</div>
|
|
|
|
<div className="level">级别{index + 1 + (unlockedAnswers ? unlockedAnswers.length : 0)}:</div>
|
|
|
|
<div className="name">{item.name}</div>
|
|
|
|
<div className="name">{item.name}</div>
|
|
|
|
<div
|
|
|
|
<div
|
|
|
|
className="status" onClick={ () => { this.props.showUnlockAnswerDialog(item) } }
|
|
|
|
className="status" onClick={ () => { this.props.showUnlockAnswerDialog(item) } }
|
|
|
|
style={{ color: '#4CACFF', cursor: 'pointer' }}
|
|
|
|
style={{ color: '#4CACFF', cursor: 'pointer' }}
|
|
|
|
>解锁</div>
|
|
|
|
>解锁</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
})}
|
|
|
|
})}
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ st === 1 ?
|
|
|
|
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li" id="game_answer_show_choose"
|
|
|
|
{ st === 1 ?
|
|
|
|
|
|
|
|
<div className="-flex -scroll task-padding16 panel-box-sizing new_li" id="game_answer_show_choose"
|
|
|
|
>
|
|
|
|
>
|
|
|
|
<ChooseAnswerView gameAnswer={gameAnswer}></ChooseAnswerView>
|
|
|
|
<ChooseAnswerView gameAnswer={gameAnswer}></ChooseAnswerView>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -338,8 +345,8 @@ class LeftView extends Component {
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="tab_con_4" className="commentTab tab-info commentsDelegateParent" style={ tabIndex === 3 ? {display: 'block'} : {display: 'none'} }>
|
|
|
|
<div id="tab_con_4" className="commentTab tab-info commentsDelegateParent" style={ tabIndex === 3 ? {display: 'block'} : {display: 'none'} }>
|
|
|
|
{ loadingComments ?
|
|
|
|
{ loadingComments ?
|
|
|
|
<CircularProgress size={40} thickness={3} style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40%', display: 'block' }}/> :
|
|
|
|
<CircularProgress size={40} thickness={3} style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40%', display: 'block' }}/> :
|
|
|
|
<CommentContainer {...this.props}></CommentContainer>
|
|
|
|
<CommentContainer {...this.props}></CommentContainer>
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|