Skip to content

Commit 9d64515

Browse files
committed
to 3
1 parent 5273d7c commit 9d64515

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

examples/split.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import '../assets/index.less';
77
const { Option } = Mentions;
88

99
function validateSearch(text) {
10-
return text.length <= 5;
10+
console.log('~~>', text);
11+
return text.length <= 3;
1112
}
1213

1314
class Demo extends React.Component {
@@ -17,7 +18,7 @@ class Demo extends React.Component {
1718
return (
1819
<div>
1920
<h1>Customize Split Logic</h1>
20-
<p>Only validate string length less than 5</p>
21+
<p>Only validate string length less than 3</p>
2122
<Mentions
2223
style={{ width: '100%', fontSize: 50 }}
2324
split=""

src/Mentions.tsx

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ class Mentions extends React.Component<MentionsProps, MentionsState> {
140140
public onKeyUp: React.KeyboardEventHandler<HTMLTextAreaElement> = event => {
141141
const { key, which } = event;
142142
const { measureText: prevMeasureText, measuring } = this.state;
143-
const { prefix = '', split = ' ', onSearch, validateSearch } = this.props;
143+
const { prefix = '', onSearch, validateSearch } = this.props;
144144
const target = event.target as HTMLTextAreaElement;
145145
const selectionStartText = getBeforeSelectionText(target);
146146
const { location: measureIndex, prefix: measurePrefix } = getLastMeasureIndex(
@@ -153,22 +153,21 @@ class Mentions extends React.Component<MentionsProps, MentionsState> {
153153
return;
154154
}
155155

156-
// Skip if is the last one
157-
if (KeyCode.RIGHT === which && target.selectionStart === target.value.length) {
158-
return;
159-
}
160-
161156
if (measureIndex !== -1) {
162157
const measureText = selectionStartText.slice(measureIndex + measurePrefix.length);
163158
const validateMeasure: boolean = validateSearch!(measureText, this.props);
164159
const matchOption: boolean = !!this.getOptions(measureText).length;
165160

166-
if (key === measurePrefix || measuring || (measureText !== prevMeasureText && matchOption)) {
167-
this.startMeasure(measureText, measurePrefix, measureIndex);
168-
}
169-
170-
// Stop if measureText is invalidate
171-
if (measuring && !validateMeasure) {
161+
if (validateMeasure) {
162+
if (
163+
key === measurePrefix ||
164+
measuring ||
165+
(measureText !== prevMeasureText && matchOption)
166+
) {
167+
this.startMeasure(measureText, measurePrefix, measureIndex);
168+
}
169+
} else if (measuring) {
170+
// Stop if measureText is invalidate
172171
this.stopMeasure();
173172
}
174173

0 commit comments

Comments
 (0)