|
@@ -60,6 +60,7 @@ class Editor extends React.Component {
|
60
|
60
|
fileMap: {}, // 已经上传的图片路径和 uid 的映射 { uid: path }
|
61
|
61
|
uploadVisible: false
|
62
|
62
|
};
|
|
63
|
+ this.handleChange = this.handleChange.bind(this);
|
63
|
64
|
this.handleClickEmoji = this.handleClickEmoji.bind(this);
|
64
|
65
|
this.handleChangeFileList = this.handleChangeFileList.bind(this);
|
65
|
66
|
this.handleShowUpload = this.handleShowUpload.bind(this);
|
|
@@ -68,10 +69,11 @@ class Editor extends React.Component {
|
68
|
69
|
this.handlePaste = this.handlePaste.bind(this);
|
69
|
70
|
this.resetState = this.resetState.bind(this);
|
70
|
71
|
this.handleEmojiScroll = this.handleEmojiScroll.bind(this);
|
|
72
|
+ this.handlePressEnter = this.handlePressEnter.bind(this);
|
71
|
73
|
}
|
72
|
74
|
|
73
|
75
|
componentDidMount() {
|
74
|
|
- const { app, onRef, allowEnter, onPressEnter } = this.props;
|
|
76
|
+ const { app, onRef } = this.props;
|
75
|
77
|
if (
|
76
|
78
|
app.currentUser &&
|
77
|
79
|
(app.currentUser.user_id > 0 || app.currentUser.id > 0)
|
|
@@ -81,9 +83,6 @@ class Editor extends React.Component {
|
81
|
83
|
if (isFunction(onRef)) {
|
82
|
84
|
onRef(this);
|
83
|
85
|
}
|
84
|
|
-
|
85
|
|
- if ((allowEnter && !onPressEnter) || (!allowEnter && onPressEnter))
|
86
|
|
- console.error("`onPressEnter` must be undefined when `allowEnter`!");
|
87
|
86
|
}
|
88
|
87
|
|
89
|
88
|
handleEmojiScroll(e) {
|
|
@@ -103,12 +102,12 @@ class Editor extends React.Component {
|
103
|
102
|
* 将最新的值存储到 state 中
|
104
|
103
|
* @param {string} value 输入的值
|
105
|
104
|
*/
|
106
|
|
- handleChange = value => {
|
|
105
|
+ handleChange(value) {
|
107
|
106
|
this.setState({ value });
|
108
|
107
|
if (this.props.onChange) {
|
109
|
108
|
this.props.onChange(value);
|
110
|
109
|
}
|
111
|
|
- };
|
|
110
|
+ }
|
112
|
111
|
|
113
|
112
|
/**
|
114
|
113
|
* 点击 emoji 的事件
|
|
@@ -298,20 +297,19 @@ class Editor extends React.Component {
|
298
|
297
|
|
299
|
298
|
/**
|
300
|
299
|
* **处理Enter事件**
|
301
|
|
- * 1. `allowEnter` & `onPressEnter`同时有效时才能触发
|
|
300
|
+ * 1. `allowEnterSubmit`为true时enter触发submit事件
|
302
|
301
|
* 2. `e.preventDefault`为了防止enter事件后仍触发换行
|
303
|
|
- * 3. enter事件开启,仍可以用`shift + enter`触发换行
|
|
302
|
+ * 3. enter事件开启后,仍可以用`shift + enter`触发换行
|
304
|
303
|
* -- evo 20200222
|
305
|
304
|
*/
|
306
|
|
- handlePressEnter = e => {
|
307
|
|
- const { allowEnter, onPressEnter } = this.props;
|
308
|
|
- if (allowEnter && onPressEnter) {
|
|
305
|
+ handlePressEnter(e) {
|
|
306
|
+ if (this.props.allowEnterSubmit) {
|
309
|
307
|
if (!e.shiftKey) {
|
310
|
308
|
e.preventDefault();
|
311
|
|
- onPressEnter();
|
|
309
|
+ this.handleSubmit();
|
312
|
310
|
}
|
313
|
311
|
}
|
314
|
|
- };
|
|
312
|
+ }
|
315
|
313
|
|
316
|
314
|
render() {
|
317
|
315
|
const {
|
|
@@ -530,8 +528,7 @@ Editor.propTypes = {
|
530
|
528
|
onError: PropTypes.func,
|
531
|
529
|
maxLength: PropTypes.number,
|
532
|
530
|
// Enter事件相关
|
533
|
|
- allowEnter: PropTypes.bool,
|
534
|
|
- onPressEnter: PropTypes.func
|
|
531
|
+ allowEnterSubmit: PropTypes.bool
|
535
|
532
|
};
|
536
|
533
|
|
537
|
534
|
Editor.defaultProps = {
|
|
@@ -553,8 +550,7 @@ Editor.defaultProps = {
|
553
|
550
|
app: {},
|
554
|
551
|
handleChangeFileList: () => {},
|
555
|
552
|
// Enter事件相关
|
556
|
|
- allowEnter: false,
|
557
|
|
- onPressEnter: undefined
|
|
553
|
+ allowEnterSubmit: false
|
558
|
554
|
};
|
559
|
555
|
|
560
|
556
|
export default Comment(Editor);
|