Commit graph

45 commits

Author SHA1 Message Date
Bruno Windels
dc85346e5c
Merge pull request #4102 from matrix-org/bwindels/aliasautocomplete
Use alt_aliases for pills and autocomplete
2020-02-24 12:18:07 +00:00
Michael Telatynski
e799691573 Apply null-guard to room pills for when we can't fetch the room
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-21 14:14:24 +00:00
Bruno Windels
16815a752b use alt_aliases instead of aliases to match a pill to a room
when deserializing a pill
2020-02-21 13:02:41 +01:00
Bruno Windels
8870da6c24 Add alt_aliases to room completion candidates
but don't match on name otherwise you see multiple entries per room
when searching for a room name

Also pass the roomId to the composer autocomplete, so
it's easier to we don't need to loop through all the rooms and
it's also easier accept room with local aliases as well in the future
2020-02-21 13:02:41 +01:00
Michael Telatynski
7e45979e00 change order of if or conditions as micro-optimization
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-30 20:59:30 +00:00
Michael Telatynski
b84fd245b1 Fix room completion for invited rooms and upgraded rooms
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-30 18:03:45 +00:00
Travis Ralston
d56f0f2a25 Convert many imports to handle ES6 exports
Reliant upon https://github.com/matrix-org/matrix-react-sdk/pull/3761
2019-12-22 21:04:42 -07:00
Bruno Windels
228905bec2 insert command completion as command part (instead of plain)
this prevents the command being sent as plain text

this adds a `type` property to completions to decide which
parts should be inserted into the composer, hence deciding how
they will be rendered.
2019-09-23 14:39:19 +02:00
Bruno Windels
c4d7df768d
Merge pull request #3375 from matrix-org/bwindels/cider-colononmention
New composer: share user pill postfix between autocomplete and insert mention
2019-09-02 14:58:23 +00:00
Bruno Windels
2683627a82 disable spell check for pills in the new composer 2019-09-02 14:26:15 +02:00
Bruno Windels
c595371845 share user pill postfix between autocomplete and insert mention
where we decide to add a colon only if the composer is empty
2019-09-02 14:06:30 +02:00
Bruno Windels
00d81eece9 don't accept @/#/: as part of command, allow to create pill candidate
so if you type these 3 characters, you get the correct autocomplete
2019-09-02 11:26:20 +02:00
Bruno Windels
80523f5dbe still convert \n to NewlinePart when pasting/dropping
before we skipped the complete validation (which creates NewlineParts)
when pasting or dropping text. We don't want to create PillCandidatePart
when inserting text like this, as it would open the auto-complete, but
newlines should still be applied. So instead of skipping validation,
pass the inputType to the validation code so they can only reject
pill candidate characters when not pasting.
2019-08-29 13:00:31 +02:00
Bruno Windels
8e66d382de don't crash on race with room members and initial composer render
not ideal, but for now this prevents a crash at startup
when a user-pill is persisted in local storage
2019-08-27 16:43:05 +02:00
Bruno Windels
e0ec827a64 extra docs 2019-08-27 16:43:05 +02:00
Bruno Windels
c5cd8b943a support auto complete for /commands 2019-08-22 13:33:20 +01:00
Bruno Windels
ce44c651d0 keep deserialized parts compatible with part api,
to avoid breakage when passing real parts
2019-08-22 13:33:20 +01:00
Bruno Windels
d22745a5b2 make it obvious arguments are optional
because now they have a setter
2019-08-22 13:33:20 +01:00
Bruno Windels
299cf8542c Split MessageEditor in edit-specifics & reusable part for main composer 2019-08-05 15:31:18 +02:00
Bruno Windels
a999acbd04 fix argument order 2019-07-30 17:17:25 +02:00
Bruno Windels
9bfba9db3e make PartCreator a bit more testable by not asking for deps of dep 2019-07-25 14:50:20 +02:00
Bruno Windels
06fb892df9 prevent autocomplete when doing bulk insertion (paste, drop text) 2019-07-11 18:46:56 +02:00
Bruno Windels
3119feaa17 whitespace 2019-06-18 09:48:25 +02:00
Bruno Windels
d9e62b54fc also support deserializing at-room-pill when transferring editor state 2019-06-14 18:42:30 +02:00
Bruno Windels
dfec5058c5 support creating @room pills in partcreator 2019-06-14 18:28:44 +02:00
Bruno Windels
eb4ff50c3c do parts creation only in PartCreator to not scatter dependencies 2019-06-14 18:28:44 +02:00
Bruno Windels
d40f49e2c2 fix lint 2019-06-12 19:09:27 +02:00
Bruno Windels
e674f39e3b support (de)serializing parts with other dependencies than text 2019-06-12 18:32:32 +02:00
Bruno Windels
8c0b8ff618 take part length into account as well 2019-05-24 15:43:55 +02:00
Bruno Windels
cf5e4d3d94 make consecutive :/@/# separate pill candidates
e.g. accept the first character always to start the autocompletion
but after that refer to the plainpart logic to split up in
new pill candidates. Also, don't allow merging adjacent parts.

This makes sure that "@nonmatchingfoo @someuser"
only matches "someuser" in the autocomplete.
2019-05-24 12:38:19 +02:00
Bruno Windels
ff61376c07
Merge pull request #3004 from matrix-org/bwindels/update-link-previews-after-edit
Message editing: update link previews after editing
2019-05-22 14:17:34 +00:00
Bruno Windels
6b1134bdf0 add matrix foundation copyright header 2019-05-22 16:16:32 +02:00
Bruno Windels
fb03b5b168 fix lint 2019-05-21 13:49:43 +02:00
Bruno Windels
a75c948e2e don't cache DRP 2019-05-21 12:24:12 +02:00
Bruno Windels
5d184b3f77 reuse mx_Pill styles for editor pills to avoid style duplication
the avatar style code is still different though,
as it's implemented differently

This also prevents updating the css variables when not needed,
which caused the avatar to flicker when updating the editor.
2019-05-21 12:19:35 +02:00
Bruno Windels
df4f380082 find room by alias in room pill 2019-05-20 15:34:15 +02:00
Bruno Windels
c1b2f3dce1 make user pill avatars work in editor 2019-05-20 14:21:25 +02:00
Bruno Windels
3b598a1782 set pill avatar through css variables to set on psuedo-element
this way it won't interfere with editor selection/caret
2019-05-20 10:28:26 +02:00
Bruno Windels
710338c01f pass member and room to editor pills to get avatar url 2019-05-20 10:28:26 +02:00
Bruno Windels
98e033a529 don't allow newline parts of longer than one newline 2019-05-16 18:13:48 +01:00
Bruno Windels
f27607a74c don't put cursor position in NewlinePart after adding it
You can't append to it anyway, so mark it uneditable and skip
uneditable parts if that's where an edit ended up.

This has the added advantage that if there is text after a newly
insert pill, the cursor will be put just before it rather than
in the pill, after the last character.
2019-05-16 17:58:22 +01:00
Bruno Windels
7ebb6ce621 WIP commit, newlines sort of working 2019-05-14 15:38:16 +01:00
Bruno Windels
5e6367ab57 basic support for non-editable parts
e.g. pills, they get deleted when any character of them is removed
later on we also shouldn't allow the caret to be set inside of them
2019-05-14 15:38:16 +01:00
Bruno Windels
1330b438d6 initial support for auto complete in model and parts
also move part creation out of model, into partcreator, which
can then also contain dependencies for creating the auto completer.
2019-05-14 15:38:16 +01:00
Bruno Windels
9f98a6c0e6 add converted prototype code 2019-05-14 15:38:16 +01:00