Incorrect filter implementation on Start Chat input.
So I can't search people who name starts with 'Б'.
Web App:
It seems, problem appears because russian 'б' shared with english comma ',' on the keyboard. But in different layouts.
Keyboard like this one 
@w1r0x I'm not convinced the problem is with this particular character, I'm able to search for a variety of different queries, including your "Б" with no problems.
In fact, when you type any single character and just hit Return , "You have entered an invalid contact" which could mean that you haven't added anyone to be invited. This indicates that the UX for inviting users is a bit subtle and could be better.
(It's possible to invite someone by matrix ID by typing it in exactly and then selecting the first dropdown option.)
I also can search if i copy and paste 'Б'. But when I'm trying to type it by keyboard I have an error.
I have this message without hitting Return button
That's very odd. AH. It might actually 100% be to do with the fact the character shares a key code with the comma.
And this is why:
} else if (e.keyCode === 188 || e.keyCode === 9) { // comma or tab
e.stopPropagation();
e.preventDefault();
this._addInputToList();
}
@w1r0x out of interest, how _do_ you enter a comma with that keyboard?
Yeah it is what I'm talking about.
Maybe in some other non-English languages there will be same problem with comma key.
To enter text we switch layouts. In english layout you type english letters, then press smth like Alt+Shift - switch to russian and type russian text.
If you switch it to listen to the keyPress event instead of keyDown, then e.charCode || e.keyCode should give you the character value of the text entered, rather than the code for the key that was pressed. So it _should_ be able to distinguish between comma and б even though they're on the same key (though I haven't tested it). But this seems to only on the keyPress event, and not on keyDown/keyUp, because browsers just want to make things hard for us.
The resources that I use to help navigate through the craziness of keyboard handling in JS are https://www.quirksmode.org/js/keys.html and http://www.unixpapa.com/js/key.html (though they're both a bit dated).
I'm actually experiencing the same issue but with other (custom) layouts. Indeed, special keys (like arrows, delete, etc) that have different meaning on a different layout don't work as they should. So a “Delete” key that should type something else on a different layout works like Delete even though it shouldn't.
What can I do to help with this issue? Do you need exact steps to reproduce?
@lukebarnard1 where did you take that code? I can't find it anymore. Any ideas on what would be the relevant part of the code today?
Nevermind, turns out it is a bug in electron. There's no ticket yet though.
Actually, it's a bug in chromium.
There's no ticket for my issue yet, but here are some that may be related:
@AlexDaniel that seems to be a separate issue. @uhoreg has outlined the fix for this.
If there is a need to filter comma, it is probably better to process the whole line before sending it to the server?
This should be fixed as nowadays we no longer use event.keyCode and instead use event.key