修复编辑器背景与重复的代码更新提示

dev_aliyun2
harry 5 years ago
parent 9febd93e57
commit 7696e2f8a9

@ -19,7 +19,7 @@ const SettingDrawer = (props) => {
return +fromStore('oj_fontSize') || 14; return +fromStore('oj_fontSize') || 14;
}); });
const [theme, setTheme] = useState(() => { const [theme, setTheme] = useState(() => {
return fromStore('oj_theme') || 'dark'; return fromStore('oj_theme') || 'vs-dark';
}); });
const { title, type = 'label', content = [] } = props; const { title, type = 'label', content = [] } = props;
@ -92,7 +92,7 @@ const SettingDrawer = (props) => {
return ( return (
<React.Fragment> <React.Fragment>
<h3 className={'setting_h2'}>{title}</h3> <h3 className={'setting_h2'}>{title}</h3>
{ result } {result}
</React.Fragment> </React.Fragment>
); );
} }

@ -1,13 +1,12 @@
.monaco_editor_area { .monaco_editor_area {
height: 100%; height: 100%;
background-color: rgba(7, 15, 25, 1);
.code_title { .code_title {
display: flex; display: flex;
align-items: center; align-items: center;
background-color: rgba(18, 28, 36, 1);
color: #fff; color: #fff;
height: 56px; height: 56px;
background-color: rgba(18, 28, 36, 1);
padding: 0 20px; padding: 0 20px;
.flex_strict { .flex_strict {
@ -31,17 +30,6 @@
} }
} }
// .margin,
// .margin-view-overlays,
// .current-line{
// width: 40px !important;
// }
// .monaco-editor .margin-view-overlays .line-numbers{
// text-align: center;
// }
// .monaco-scrollable-element{
// left: 40px !important;
// }
} }
.setting_drawer { .setting_drawer {
@ -77,18 +65,12 @@
} }
.flex_has_save { .flex_has_save {
// animation: blink 3s line 3;
animation-name: blink; animation-name: blink;
animation-duration: .4s; animation-duration: .4s;
animation-iteration-count: 3; animation-iteration-count: 3;
} }
// .monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input,
// .monaco-editor .margin,
// .minimap slider-mouseover,
// .minimap-decorations-layer{
// background:rgba(3,19,40,1) !important;
// }
@keyframes blink { @keyframes blink {
50% { 50% {
color: #fff; color: #fff;

@ -63,7 +63,6 @@ function RecordDetail(props) {
const handleEditorCode = (identifier, code) => { const handleEditorCode = (identifier, code) => {
if (identifier) { if (identifier) {
console.log(code);
saveEditorCodeForDetail(code); saveEditorCodeForDetail(code);
props.history.push(`/myproblems/${identifier}`); props.history.push(`/myproblems/${identifier}`);
} }

@ -1,69 +1,89 @@
@import '../split_pane_resizer.scss'; @import '../split_pane_resizer.scss';
.result_code_area .monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input{
background-color: #f9f9f9!important; .result_code_area .monaco-editor,
.monaco-editor-background,
.monaco-editor .inputarea.ime-input {
background-color: #f9f9f9 !important;
} }
.result_code_area .monaco-editor .line-numbers{
color: #999!important; .result_code_area .monaco-editor .line-numbers {
color: #999 !important;
} }
.result_code_area .monaco-editor .current-line ~ .line-numbers {
color: #0b216f!important; .result_code_area .monaco-editor .current-line~.line-numbers {
color: #0b216f !important;
} }
.result_code_area .minimap-decorations-layer{
background: rgba(225,225,225,0.2)!important; .result_code_area .minimap-decorations-layer {
background: rgba(225, 225, 225, 0.2) !important;
} }
.result_code_area .monaco-editor .margin{
background-color: #eee!important; .result_code_area .monaco-editor .margin {
background-color: #eee !important;
} }
.record_detail_area{
.record_detail_area {
background: #fff; background: #fff;
.record_detail_ctx{
.record_detail_ctx {
padding: 0 20px; padding: 0 20px;
.detail_ctx_header{
.detail_ctx_header {
position: relative; position: relative;
height: 56px; height: 56px;
} }
.header_h2{
.header_h2 {
line-height: 56px; line-height: 56px;
} }
.header_btn{
.header_btn {
position: absolute; position: absolute;
right: 0; right: 0;
top: 14px; top: 14px;
} }
.detail_ctx_status{
.detail_ctx_status {
height: 18px; height: 18px;
line-height: 18px; line-height: 18px;
.status_label{
color: rgba(153,153,153,1); .status_label {
color: rgba(153, 153, 153, 1);
margin-right: 40px; margin-right: 40px;
} }
.status_label_error{
.status_label_error {
color: #E51C24; color: #E51C24;
} }
.status_label_success{
.status_label_success {
color: #28BD8B; color: #28BD8B;
} }
.status_label_sub{
.status_label_sub {
color: #333333; color: #333333;
} }
.pass_case{
.pass_case {
float: right; float: right;
margin-right: 0; margin-right: 0;
} }
.pass_case_span{
.pass_case_span {
margin-right: 10px; margin-right: 10px;
} }
} }
.result_code_area{ .result_code_area {
// height: 500px; // height: 500px;
height: calc(100vh - 360px); height: calc(100vh - 360px);
} }
.result_error_area{
.result_error_area {
margin-top: 15px; margin-top: 15px;
background: rgba(250,250,250,1); background: rgba(250, 250, 250, 1);
color: #E51C24; color: #E51C24;
border-radius: 3px; border-radius: 3px;
} }
} }
} }

@ -15,11 +15,7 @@ import RightPane from './rightpane';
import { Icon } from 'antd'; import { Icon } from 'antd';
import UserInfo from '../components/userInfo'; import UserInfo from '../components/userInfo';
import actions from '../../../redux/actions'; import actions from '../../../redux/actions';
<<<<<<< HEAD
import { CNotificationHOC } from 'educoder'; import { CNotificationHOC } from 'educoder';
=======
import { fromStore, CNotificationHOC } from 'educoder';
>>>>>>> 73d555c... fix
import { withRouter } from 'react-router'; import { withRouter } from 'react-router';
function StudentStudy(props) { function StudentStudy(props) {
@ -28,8 +24,6 @@ function StudentStudy(props) {
const { const {
hack, hack,
userInfo, userInfo,
// hack_identifier,
// user_program_identifier,
restoreInitialCode, restoreInitialCode,
changeUserCodeTab, changeUserCodeTab,
changeShowOrHideControl, changeShowOrHideControl,
@ -75,7 +69,7 @@ function StudentStudy(props) {
changeUserCodeTab(tab); changeUserCodeTab(tab);
} }
}, []); }, []);
// console.log(hack, hack.modify_code)
useEffect(() => { useEffect(() => {
if (hack && hack.modify_code && hasUpdate) { // 代码更改,提示是否需要更新代码 if (hack && hack.modify_code && hasUpdate) { // 代码更改,提示是否需要更新代码
setHasUpdate(false); setHasUpdate(false);

@ -52,7 +52,7 @@ const RightPane = (props) => {
clearInterval(timer); clearInterval(timer);
timer = null; timer = null;
saveUserCodeForInterval(identifier); saveUserCodeForInterval(identifier);
}, 10000); }, 5000);
} }
} }

@ -45,7 +45,7 @@ const ojForUserReducer = (state = initialState, action) => {
} }
case types.USER_PROGRAM_DETAIL: case types.USER_PROGRAM_DETAIL:
const { hack, test_case } = action.payload; const { hack, test_case } = action.payload;
const { code }= hack; const { code } = hack;
let tempCode = Base64.decode(code) let tempCode = Base64.decode(code)
let tempDesc; let tempDesc;
try { try {
@ -53,7 +53,7 @@ const ojForUserReducer = (state = initialState, action) => {
} catch (error) { } catch (error) {
tempDesc = hack.description; tempDesc = hack.description;
} }
Object.assign(hack, {code: tempCode, description: tempDesc}); Object.assign(hack, { code: tempCode, description: tempDesc });
return { return {
...state, ...state,
hack: Object.assign({}, hack), hack: Object.assign({}, hack),
@ -73,21 +73,21 @@ const ojForUserReducer = (state = initialState, action) => {
result['error_msg'] = Base64.decode(result['error_msg']); result['error_msg'] = Base64.decode(result['error_msg']);
} catch (e) { } catch (e) {
console.log('错误信息:', e); console.log('错误信息:', e);
} }
if (action.payload.type === 'submit') { if (action.payload.type === 'submit') {
return { return {
...state, ...state,
commitRecordDetail: Object.assign({}, result) commitRecordDetail: Object.assign({}, result)
} }
} else { } else {
return { return {
...state, ...state,
commitTestRecordDetail: Object.assign({}, result) commitTestRecordDetail: Object.assign({}, result)
} }
} }
case types.COMMIT_RECORD: case types.COMMIT_RECORD:
const {records, records_count} = action.payload; const { records, records_count } = action.payload;
return { return {
...state, ...state,
commitRecord: records, commitRecord: records,
@ -115,7 +115,7 @@ const ojForUserReducer = (state = initialState, action) => {
tempDetail = action.payload.data; tempDetail = action.payload.data;
if (tempDetail['error_msg']) { if (tempDetail['error_msg']) {
tempDetail['error_msg'] = Base64.decode(tempDetail['error_msg']); tempDetail['error_msg'] = Base64.decode(tempDetail['error_msg']);
} }
if (tempDetail['expected_output']) { if (tempDetail['expected_output']) {
tempDetail['expected_output'] = Base64.decode(tempDetail['expected_output']); tempDetail['expected_output'] = Base64.decode(tempDetail['expected_output']);
} }
@ -137,6 +137,7 @@ const ojForUserReducer = (state = initialState, action) => {
} else { } else {
curHack['code'] = ''; curHack['code'] = '';
} }
curHack['modify_code'] = false
return { return {
...state, ...state,
hack: Object.assign({}, state.hack, curHack), hack: Object.assign({}, state.hack, curHack),
@ -167,9 +168,9 @@ const ojForUserReducer = (state = initialState, action) => {
...state, ...state,
hadCodeUpdate: action.payload hadCodeUpdate: action.payload
}; };
case types.CLICK_OPERATE_TYPE: case types.CLICK_OPERATE_TYPE:
return { return {
...state, ...state,
operateType: action.payload operateType: action.payload
} }
case types.CLEAR_OJ_FOR_USER_REDUCER: case types.CLEAR_OJ_FOR_USER_REDUCER:
@ -204,18 +205,18 @@ const ojForUserReducer = (state = initialState, action) => {
let _user_praise = state.hack.user_praise; let _user_praise = state.hack.user_praise;
_count = +action.payload > 0 ? _count + 1 : _count - 1; _count = +action.payload > 0 ? _count + 1 : _count - 1;
_user_praise = +action.payload > 0 ? true : false; _user_praise = +action.payload > 0 ? true : false;
const _hack = Object.assign({}, state.hack, {praises_count: _count, user_praise: _user_praise}); const _hack = Object.assign({}, state.hack, { praises_count: _count, user_praise: _user_praise });
return { return {
...state, ...state,
hack: _hack hack: _hack
} }
case types.CHANGE_RECORD_PAGINATION_PAGE: case types.CHANGE_RECORD_PAGINATION_PAGE:
return { return {
...state, ...state,
pages: Object.assign({}, state.pages, { page: action.payload}) pages: Object.assign({}, state.pages, { page: action.payload })
} }
case types.UPDATE_OJ_FOR_USER_COMMENT_COUNT: case types.UPDATE_OJ_FOR_USER_COMMENT_COUNT:
const {comments_count} = state.hack; const { comments_count } = state.hack;
const _comments_count = action.payload === 'add' ? comments_count + 1 : comments_count - 1; const _comments_count = action.payload === 'add' ? comments_count + 1 : comments_count - 1;
return { return {
...state, ...state,
@ -223,18 +224,18 @@ const ojForUserReducer = (state = initialState, action) => {
} }
// 修改笔记内容 // 修改笔记内容
case types.UPDATE_NOTE_CONTENT: case types.UPDATE_NOTE_CONTENT:
const _hack1 = Object.assign({}, state.hack, {notes: action.payload }); const _hack1 = Object.assign({}, state.hack, { notes: action.payload });
return { return {
...state, ...state,
hack: _hack1 hack: _hack1
} }
// 修改 hack passed值 // 修改 hack passed值
case types.UPDATE_HACK_PASSED: case types.UPDATE_HACK_PASSED:
const _hack2 = Object.assign({}, state.hack, {passed: action.payload }); const _hack2 = Object.assign({}, state.hack, { passed: action.payload });
return { return {
...state, ...state,
hack: _hack2 hack: _hack2
} }
default: default:
return state; return state;
} }

Loading…
Cancel
Save