Commit 2cea0f22 authored by baixian's avatar baixian

打卡完成

parent 99f950f4
......@@ -13,10 +13,10 @@
<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=XSZBZ-5LHCV-5I2P7-UQHPW-6456F-JBB3B"></script>
<script src="/js/ueeditor/ueditor.config.js?20200107" charset="utf-8"></script><script src="/js/ueeditor/ueditor.all.js?20200107" charset="utf-8"></script>
<script src="https://cdn.img.shangjiadao.cn/qingxiao/biz/js/console-polyfill.js?20200107" charset="utf-8"></script><script src="https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es6-shim.min.js?20200107" charset="utf-8"></script><script src="https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es5-shim.js?20200107" charset="utf-8"></script><script src="https://cdn.img.shangjiadao.cn/qingxiao/biz/js/es5-sham.min.js?20200107" charset="utf-8"></script><script src="https://cdn.img.shangjiadao.cn/qingxiao/biz/js/json3.min.js?20200107" charset="utf-8"></script><script src="https://cdn.img.shangjiadao.cn/qingxiao/biz/js/html5shiv.min.js?20200107" charset="utf-8"></script><script src="https://cdn.img.shangjiadao.cn/qingxiao/biz/js/polyfill.js?20200107" charset="utf-8"></script><script src="https://cdn.img.shangjiadao.cn/qingxiao/biz/lib/vendor.dll.js?20200107" charset="utf-8"></script>
<script src="js/console-polyfill.js?20200107" charset="utf-8"></script><script src="js/es6-shim.min.js?20200107" charset="utf-8"></script><script src="js/es5-shim.js?20200107" charset="utf-8"></script><script src="js/es5-sham.min.js?20200107" charset="utf-8"></script><script src="js/json3.min.js?20200107" charset="utf-8"></script><script src="js/html5shiv.min.js?20200107" charset="utf-8"></script><script src="js/polyfill.js?20200107" charset="utf-8"></script><script src="lib/vendor.dll.js?20200107" charset="utf-8"></script>
</head>
</head>
<body>
<div id="root"></div>
<script type="text/javascript" src="https://cdn.img.shangjiadao.cn/qingxiao/biz/dist/main.1bcb10.js"></script></body>
<script type="text/javascript" src="/dist/main.78952e.js"></script></body>
</html>
\ No newline at end of file
......@@ -12,7 +12,7 @@ export default {
activeurl: `${__IMGCDN__}menu/indexactive.png`,
notactiveurl: `${__IMGCDN__}menu/index.png`,
path: '/sjd/indexstaic',
relativePath: ['/sjd/indexstaic'],
relativePath: ['/sjd/indexstaic', '/sjd/newtheme/jobclock/:id', '/sjd/newtheme/calendarclock/:id', '/sjd/newtheme/jobclock/:id/:isCopy', '/sjd/newtheme/calendarclock/:id/:isCopy', '/sjd/clockmgt/:themetype/:themeid', '/sjd/customsDetail/:id', '/sjd/addCustomsContent/:id', '/sjd/editCustoms/:id', '/sjd/editCustomsContent/:id'],
},
{
id: '5',
......@@ -54,7 +54,7 @@ export default {
activeurl: `${__IMGCDN__}menu/classactive.png`,
notactiveurl: `${__IMGCDN__}menu/class.png?v=2`,
path: '/sjd/classmgt',
relativePath: ['/sjd/classmgt', '/sjd/classdetail/:classid', '/sjd/newtheme/jobclock/:id', '/sjd/newtheme/calendarclock/:id', '/sjd/newtheme/jobclock/:id/:isCopy', '/sjd/newtheme/calendarclock/:id/:isCopy', '/sjd/thememgt/:classid', '/sjd/clockmgt/:themetype/:themeid', '/sjd/classdetail/studentinfo/:id', '/sjd/customsDetail/:id', '/sjd/addCustomsContent/:id', '/sjd/editCustoms/:id', '/sjd/editCustomsContent/:id'],
relativePath: ['/sjd/classmgt', '/sjd/classdetail/:classid', '/sjd/thememgt/:classid', '/sjd/classdetail/studentinfo/:id'],
},
{
id: '4',
......
......@@ -227,7 +227,7 @@ export default {
},
* queryShortWords({ payload }, { call, put, select }) {
const getShortWordsDate = yield call(clockmgtajax.getShortWords, {
class_id: payload.class_id,
// class_id: payload.class_id,
school_id: payload.school_id,
});
if (getShortWordsDate.code == 200) {
......@@ -290,6 +290,7 @@ export default {
* saveSubjectReviewTemplate({ payload }, { call, put, select }) {
const {
classId, copyTempArr, tempsaveLoading, tempScoreArr, tabIndex, quicktempScoreArr,
singleClock,
} = yield select(state => state.clockmgt);
const { type, callBack } = payload;
const emptyIndex = copyTempArr.findIndex(ele => ele.title.trim() == '');
......@@ -310,6 +311,7 @@ export default {
const saveData = yield call(clockmgtajax.saveSubjectReviewTemplate, {
class_id: classId,
templates: JSON.stringify(copyTempArr),
subject_id: singleClock.subject.id,
});
setTimeout(loading);
if (saveData.code == 200) {
......@@ -349,10 +351,6 @@ export default {
tempsaveLoading: false,
},
});
} else if (type == 2) {
if (callBack && (typeof callBack == 'function')) {
callBack();
}
}
} else {
yield put({
......@@ -1712,7 +1710,7 @@ export default {
yield put({
type: 'queryShortWords',
payload: {
class_id: classId,
// class_id: classId,
school_id: sid,
},
});
......
......@@ -116,50 +116,7 @@ export default {
push_status: 2,
push_time: '18:00',
sign_up_status: 2,
banner: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2c/sharemoretheme/newunlockbg.png',
content: [
{
title: '训练营是如何开展学习的?',
content: [{
type: 'text',
value: '1.全程陪伴练字教学,我们通过听课+作业+点评+群内解答等互动形式,提高学习效果' +
'\n' +
'2.国家级书法名师亲自授课,指导你快速学习正确的握笔姿势和练字方法' +
'\n' +
'3.从零基础讲起,适合小白快速入门,课程系统全面,有经验的学员也能得到进一步提高;' +
'\n' +
'4.我们的每一位同学都将得到一对一教师指导,每天督促学习,陪伴式成长' +
'适合人群\n' +
'(1)零基础练字学员\n' +
'(2)有一点基础,想提升的学员\n' +
'(3)节假日期间想快速练好字的学员',
},
{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/title-1.png' },
],
},
{
title: '加入训练营孩子能收获什么?',
content: [
{ type: 'text', value: '训练营共14关,不仅学习专业的练字技能,通关之后将获得机构赠送精美礼品(1)价值399元伯尔尼斯电饭锅一台' },
{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/ricecooker.png' },
{ type: 'text', value: '(2)价值599元小天才电话手表一个' },
{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/shoubiao.png' },
],
},
{
title: '教学老师',
content: [
{ type: 'text', value: '洛子帅, 书法练字训练营创始人,杭州阳关灿烂教育教学主管,专业书法教师,已帮助3000多人写好字。' },
{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/laoshi.png' },
],
},
{
title: '毕业学生作品',
content: [{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/works.png' }],
},
],
sign_up_content: '',
ad_banner: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2c/morethemeindex/adbanner.png',
jump_type: 1,
},
radioname: '',
......@@ -611,14 +568,6 @@ export default {
push_status: emigratedDate.data.push_status,
push_time: emigratedDate.data.push_time,
sign_up_status: emigratedDate.data.sign_up_status,
banner: emigratedDate.data.banner ? emigratedDate.data.banner : 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2c/sharemoretheme/newunlockbg.png',
content: emigratedDate.data.introduce && emigratedDate.data.introduce != null && JSON.parse(emigratedDate.data.introduce) && JSON.parse(emigratedDate.data.introduce)[0] && JSON.parse(emigratedDate.data.introduce)[0].content ? JSON.parse(emigratedDate.data.introduce) : [
{
title: emigratedDate.data.introduce && emigratedDate.data.introduce != null && JSON.parse(emigratedDate.data.introduce).title ? JSON.parse(emigratedDate.data.introduce).title : '',
content: emigratedDate.data.introduce && emigratedDate.data.introduce != null && JSON.parse(emigratedDate.data.introduce).content ? JSON.parse(emigratedDate.data.introduce).content : (JSON.parse(emigratedDate.data.introduce) || []),
},
],
ad_banner: emigratedDate.data.ad_banner ? emigratedDate.data.ad_banner : 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2c/morethemeindex/adbanner.png',
jump_type: emigratedDate.data.jump_type,
},
radioname: emigratedDate.data.sign_up_content ? JSON.parse(emigratedDate.data.sign_up_content).radioname : '',
......@@ -1650,15 +1599,7 @@ export default {
push_status: 2,
push_time: '18:00',
sign_up_status: 2,
banner: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2c/sharemoretheme/newunlockbg.png',
content: [
{
title: '',
content: [{ type: 'text', value: '' }],
},
],
sign_up_content: '',
ad_banner: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2c/morethemeindex/adbanner.png',
jump_type: 1,
},
radioList: [],
......@@ -2543,50 +2484,7 @@ export default {
push_status: 2,
push_time: '18:00',
sign_up_status: 2,
banner: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2c/sharemoretheme/newunlockbg.png',
content: [
{
title: '训练营是如何开展学习的?',
content: [{
type: 'text',
value: '1.全程陪伴练字教学,我们通过听课+作业+点评+群内解答等互动形式,提高学习效果' +
'\n' +
'2.国家级书法名师亲自授课,指导你快速学习正确的握笔姿势和练字方法' +
'\n' +
'3.从零基础讲起,适合小白快速入门,课程系统全面,有经验的学员也能得到进一步提高;' +
'\n' +
'4.我们的每一位同学都将得到一对一教师指导,每天督促学习,陪伴式成长' +
'适合人群\n' +
'(1)零基础练字学员\n' +
'(2)有一点基础,想提升的学员\n' +
'(3)节假日期间想快速练好字的学员',
},
{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/title-1.png' },
],
},
{
title: '加入训练营孩子能收获什么?',
content: [
{ type: 'text', value: '训练营共14关,不仅学习专业的练字技能,通关之后将获得机构赠送精美礼品(1)价值399元伯尔尼斯电饭锅一台' },
{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/ricecooker.png' },
{ type: 'text', value: '(2)价值599元小天才电话手表一个' },
{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/shoubiao.png' },
],
},
{
title: '教学老师',
content: [
{ type: 'text', value: '洛子帅, 书法练字训练营创始人,杭州阳关灿烂教育教学主管,专业书法教师,已帮助3000多人写好字。' },
{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/laoshi.png' },
],
},
{
title: '毕业学生作品',
content: [{ type: 'img', value: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2b/themeeditorlock/works.png' }],
},
],
sign_up_content: '',
ad_banner: 'https://cdn.img.shangjiadao.cn/qingxiao/daka/images/2c/morethemeindex/adbanner.png',
jump_type: 1,
},
radioname: '',
......
......@@ -617,12 +617,8 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
},
{
path: pathname,
name: '主题管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
......@@ -656,12 +652,8 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
},
{
path: pathname,
name: '主题管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
......@@ -727,12 +719,8 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
},
{
path: pathname,
name: '主题管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
......@@ -778,12 +766,8 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
},
{
path: pathname,
name: '主题管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
......@@ -800,12 +784,8 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
},
{
path: pathname,
name: '主题管理',
path: 'sjd/clockList',
name: '打卡列表',
},
{
path: pathname,
......@@ -886,12 +866,12 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
name: '主题详情',
name: '打卡详情',
},
],
},
......@@ -921,12 +901,12 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
name: '主题详情',
name: '打卡详情',
},
{
path: pathname,
......@@ -954,12 +934,12 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
name: '主题详情',
name: '打卡详情',
},
{
path: pathname,
......@@ -997,12 +977,12 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
name: '主题详情',
name: '打卡详情',
},
{
path: pathname,
......@@ -1030,12 +1010,12 @@ export default {
payload: {
breadcrumbList: [
{
path: 'sjd/classmgt',
name: '班级管理',
path: 'sjd/clockList',
name: '打卡管理',
},
{
path: pathname,
name: '主题详情',
name: '打卡详情',
},
{
path: pathname,
......@@ -1455,9 +1435,9 @@ export default {
});
}
if (pathname === '/sjd/clockList') {
dispatch({
type: 'newthemelist/pageInit',
});
// dispatch({
// type: 'newthemelist/pageInit',
// });
dispatch({
type: 'newthemelist/queryinfo',
});
......@@ -1466,7 +1446,7 @@ export default {
payload: {
breadcrumbList: [{
path: pathname,
name: '打卡管理',
name: '打卡列表',
}],
},
});
......
......@@ -203,8 +203,7 @@ class CommentEditorBox extends React.Component {
onCancel={closeTempUpdate}
>
{copyTempArr.map(ele => <Input maxLength={4} onChange={e => tempTitleChange(e, ele.id)} className={pageStyle.tempTitleInput} value={ele.title} />)}
<Button type="primary" className={pageStyle.singlesave} onClick={() => saveSubjectReviewTemplate(1)}>保存应用到当前班级</Button>
<Button className={pageStyle.allsave} onClick={() => saveSubjectReviewTemplate(2)}>保存应用到所有班级</Button>
<Button type="primary" className={pageStyle.singlesave} onClick={() => saveSubjectReviewTemplate(1)}>保存</Button>
</Modal>
</div>
);
......
......@@ -25,7 +25,7 @@ class ClockMgt extends React.Component {
};
}
componentDidMount() { // 挂载
pageIn('轻校-班级管理');
pageIn('轻校-点评');
}
componentDidUpdate() {
}
......@@ -660,7 +660,6 @@ class ClockMgt extends React.Component {
});
}
saveSubjectReviewTemplate = (type) => {
// type 1应用到当前班级 2 应用到所有班级
const { dispatch } = this.props;
if (type == 1) {
Modal.confirm({
......@@ -680,24 +679,6 @@ class ClockMgt extends React.Component {
});
},
});
} else if (type == 2) {
Modal.confirm({
title: '是否将该模板应用到该校区的所有班级',
content: '您确定这样做吗?',
onOk() {
dispatch({
type: 'clockmgt/saveSubjectReviewTemplate',
payload: {
type,
callBack() {
dispatch({
type: 'clockmgt/tempApplyAllClass',
});
},
},
});
},
});
}
}
closeDrawImageModal = () => {
......@@ -842,7 +823,7 @@ class ClockMgt extends React.Component {
return (
<div className={`${pageStyle.classmgtcontainer} clockmgtcontainer`}>
<Tabs activeKey={`${tabIndex}`} onChange={this.tabChange} animated={false}>
<TabPane tab="主题详情" key="1">
<TabPane tab="打卡详情" key="1">
<Row>
{themetype == 1 &&
<Col span={4} className={pageStyle.themelist}>
......
......@@ -18,7 +18,7 @@ import {
} from 'antd';
import moment from 'moment';
import pageStyle from './index.less';
import { hasBtnPower, imagify, getWeek, formatMonth } from '../../../utils';
import { hasBtnPower, imagify, getWeek, formatMonth, pageIn } from '../../../utils';
import ThemeEditor from '../ThemeEditor';
import CommentEditorBox from '../../clockmgt/commenteditorbox';
import ChooseClass from '../components/ChooseClass';
......@@ -39,6 +39,9 @@ class CalendarClockForm extends React.Component {
textLength: 0,
};
}
componentDidMount() { // 挂载
pageIn('轻校-日历打卡');
}
componentDidUpdate() {
}
componentWillUnmount() { // 卸载
......
......@@ -62,7 +62,6 @@ class ThemeEditor extends React.Component {
<div className={pageStyle.editorwrap}>
{
commentParams.content && commentParams.content.length > 0 && commentParams.content.map((ele, sort) => {
console.log(ele.content, 'ele');
return (
<div className={pageStyle.plateWrap}>
{/* <div className={pageStyle.plateDelete} onClick={() => editorDeletePlate(sort)}><Icon type="close-circle" theme="filled" /></div> */}
......
......@@ -18,7 +18,7 @@ import {
} from 'antd';
import moment from 'moment';
import pageStyle from './detail.less';
import { hasBtnPower, imagify } from '../../../utils';
import { hasBtnPower, imagify, pageIn } from '../../../utils';
import BtnPermission from '../../../components/BtnPermission';
import QrcodeShow from '../../../components/qrcodeShow';
const { TabPane } = Tabs;
......@@ -33,6 +33,9 @@ class SuccessStoreForm extends React.Component {
this.state = {
};
}
componentDidMount() { // 挂载
pageIn('轻校-闯关打卡详情');
}
componentDidUpdate() {
}
componentWillUnmount() { // 卸载
......@@ -85,7 +88,7 @@ class SuccessStoreForm extends React.Component {
lookClockMgt = (record) => {
const { dispatch } = this.props;
dispatch({
type: 'thememgt/getCode',
type: 'newthemelist/getCode',
payload: {
record: {
subject_type: 3,
......@@ -99,7 +102,7 @@ class SuccessStoreForm extends React.Component {
closeQrcodeShow = () => {
const { dispatch } = this.props;
dispatch({
type: 'thememgt/updateState',
type: 'newthemelist/updateState',
payload: {
previewQrcodeShow: false,
},
......@@ -112,7 +115,7 @@ class SuccessStoreForm extends React.Component {
return;
}
dispatch({
type: 'thememgt/goclockmgt',
type: 'newthemelist/goclockmgt',
payload: {
subject_id: record.id,
subject_type: 3,
......@@ -121,7 +124,6 @@ class SuccessStoreForm extends React.Component {
}
delete = (record) => {
const { dispatch } = this.props;
console.log(record, 'record');
if (record.sort === 1) {
message.error('第一关不能删除!', 0.5);
return;
......@@ -359,7 +361,7 @@ function mapStateToProps(state) {
previewQrcodeShow,
previewQrcode,
downloadTitle,
} = state.thememgt;
} = state.newthemelist;
return {
emigratedObj,
subjectList,
......
......@@ -9,7 +9,7 @@ import {
Select, Radio, InputNumber, Input, message, Button,
} from 'antd';
import pageStyle from './index.less';
import { hasBtnPower, imagify } from '../../../utils';
import { hasBtnPower, imagify, pageIn } from '../../../utils';
import ThemeEditor from '../ThemeEditor';
import Unclock from './Unclock';
import ContentSetting from './ContentSetting';
......@@ -36,6 +36,9 @@ const steps = [
},
];
class EmigratedClockForm extends React.Component {
componentDidMount() { // 挂载
pageIn('轻校-闯关打卡');
}
componentDidUpdate() {
}
componentWillUnmount() { // 卸载
......
......@@ -9,7 +9,6 @@ import CalendarClock from './calendarclock/index';
const { TabPane } = Tabs;
class NewThemeForm extends React.Component {
componentDidMount() { // 挂载
pageIn('轻校-发布主题');
}
componentDidUpdate() {
}
......
......@@ -18,7 +18,7 @@ import {
} from 'antd';
import moment from 'moment';
import pageStyle from './index.less';
import { hasBtnPower, imagify } from '../../../utils';
import { hasBtnPower, imagify, pageIn } from '../../../utils';
import ThemeEditor from '../ThemeEditor';
import CommentEditorBox from '../../clockmgt/commenteditorbox';
import ChooseClass from '../components/ChooseClass';
......@@ -39,6 +39,9 @@ class JobClockForm extends React.Component {
textLength: 0,
};
}
componentDidMount() { // 挂载
pageIn('轻校-作业打卡');
}
componentDidUpdate() {
}
componentWillUnmount() { // 卸载
......
......@@ -24,6 +24,7 @@ import { routerRedux } from 'dva/router';
import pageStyle from './index.less';
import { pageIn, hasBtnPower, btnPermission, translateType, imagify } from '../../utils/index';
import BtnPermission from '../../components/BtnPermission';
import QrcodeShow from '../../components/qrcodeShow';
const { Option } = Select;
const { TextArea } = Input;
const { Search } = Input;
......@@ -245,6 +246,9 @@ class LiveClass extends React.Component {
clockListParams,
clockListTotal,
clockList,
previewQrcodeShow,
previewQrcode,
downloadTitle,
} = this.props;
const columns = [
{
......@@ -255,13 +259,8 @@ class LiveClass extends React.Component {
},
{
title: '打卡创建时间',
dataIndex: 'start_time',
key: 'start_time',
},
{
title: '打卡结束时间',
dataIndex: 'end_time',
key: 'end_time',
dataIndex: 'created_at',
key: 'created_at',
},
{
title: '打卡人数',
......@@ -409,6 +408,14 @@ class LiveClass extends React.Component {
/>
</div>
</div>
<QrcodeShow
previewQrcodeShow={previewQrcodeShow}
closeQrcodeShow={this.closeQrcodeShow}
previewQrcode={previewQrcode}
title="请使用微信扫一扫,扫码查看作业"
hrefType={1}
downloadTitle={downloadTitle}
/>
</div>
);
}
......@@ -423,6 +430,9 @@ function mapStateToProps(state) {
clockListParams,
clockListTotal,
clockList,
previewQrcodeShow,
previewQrcode,
downloadTitle,
} = state.newthemelist;
const {
guideStep,
......@@ -440,6 +450,9 @@ function mapStateToProps(state) {
clockListParams,
clockListTotal,
clockList,
previewQrcodeShow,
previewQrcode,
downloadTitle,
};
}
export default connect(mapStateToProps)(LiveClassForm);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment