[FIX] Mention from suggestions concatenates to query string on autocomplete (#3696)
* [FIX] Mention suggestion concatenate to query string * Add function to get regexp and its tests in separate files * Update getRegexp.ts * Update file names * Try new regex * One regex for all mention types Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
This commit is contained in:
parent
07094aabe6
commit
1d04e9379f
|
@ -0,0 +1,56 @@
|
|||
import getMentionRegexp from './getMentionRegexp';
|
||||
|
||||
const regexp = getMentionRegexp();
|
||||
|
||||
describe('getMentionRegexpUser', function () {
|
||||
test('removing query text on user suggestion autocomplete (latin)', () => {
|
||||
const message = 'Hey @test123';
|
||||
expect(message.replace(regexp, '')).toBe('Hey @');
|
||||
});
|
||||
|
||||
test('removing query text on user suggestion autocomplete (arabic)', () => {
|
||||
const message = 'Hey @اختبار123';
|
||||
expect(message.replace(regexp, '')).toBe('Hey @');
|
||||
});
|
||||
|
||||
test('removing query text on user suggestion autocomplete (russian)', () => {
|
||||
const message = 'Hey @тест123';
|
||||
expect(message.replace(regexp, '')).toBe('Hey @');
|
||||
});
|
||||
|
||||
test('removing query text on user suggestion autocomplete (chinese trad)', () => {
|
||||
const message = 'Hey @測試123';
|
||||
expect(message.replace(regexp, '')).toBe('Hey @');
|
||||
});
|
||||
|
||||
test('removing query text on user suggestion autocomplete (japanese)', () => {
|
||||
const message = 'Hey @テスト123';
|
||||
expect(message.replace(regexp, '')).toBe('Hey @');
|
||||
});
|
||||
|
||||
test('removing query text on user suggestion autocomplete (special characters in query)', () => {
|
||||
const message = "Hey @'=test123";
|
||||
expect(message.replace(regexp, '')).toBe('Hey @');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getMentionRegexpEmoji', function () {
|
||||
test('removing query text on emoji suggestion autocomplete ', () => {
|
||||
const message = 'Hey :smiley';
|
||||
expect(message.replace(regexp, '')).toBe('Hey :');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getMentionRegexpCommand', function () {
|
||||
test('removing query text on emoji suggestion autocomplete ', () => {
|
||||
const message = '/archive';
|
||||
expect(message.replace(regexp, '')).toBe('/');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getMentionRegexpRoom', function () {
|
||||
test('removing query text on emoji suggestion autocomplete ', () => {
|
||||
const message = 'Check #general';
|
||||
expect(message.replace(regexp, '')).toBe('Check #');
|
||||
});
|
||||
});
|
|
@ -0,0 +1,4 @@
|
|||
// Match query string from the message to replace it with the suggestion
|
||||
const getMentionRegexp = (): any => /[^@:#/!]*$/;
|
||||
|
||||
export default getMentionRegexp;
|
|
@ -31,6 +31,7 @@ import { isAndroid, isTablet } from '../../utils/deviceInfo';
|
|||
import { canUploadFile } from '../../utils/media';
|
||||
import EventEmiter from '../../utils/events';
|
||||
import { KEY_COMMAND, handleCommandShowUpload, handleCommandSubmit, handleCommandTyping } from '../../commands';
|
||||
import getMentionRegexp from './getMentionRegexp';
|
||||
import Mentions from './Mentions';
|
||||
import MessageboxContext from './Context';
|
||||
import {
|
||||
|
@ -489,7 +490,7 @@ class MessageBox extends Component<IMessageBoxProps, IMessageBoxState> {
|
|||
const msg = this.text;
|
||||
const { start, end } = this.selection;
|
||||
const cursor = Math.max(start, end);
|
||||
const regexp = /([a-z0-9._-]+)$/im;
|
||||
const regexp = getMentionRegexp();
|
||||
let result = msg.substr(0, cursor).replace(regexp, '');
|
||||
// Remove the ! after select the canned response
|
||||
if (trackingType === MENTIONS_TRACKING_TYPE_CANNED) {
|
||||
|
|
Loading…
Reference in New Issue