Commit Graph

45188 Commits

Author SHA1 Message Date
Kegan Dougal
103b0a03b1 Hotfix for tab press bug
The bug was that *sometimes* typing in some letters then
pressing tab would flash red and not auto-complete. This was
happening because nextMatchedEntry was being called with 0
because the state of inPassiveMode was wrong.
2015-12-24 11:56:50 +00:00
Kegsay
b941904078 Merge pull request #33 from matrix-org/matthew/settings
WIP experiment of turning UserSettings controller into UserSettingsStore
2015-12-24 10:54:26 +00:00
Kegan Dougal
5d490841bc Review comments 2015-12-24 10:50:47 +00:00
Kegan Dougal
5286ec170f Wrangle CSS to get avatar in right place 2015-12-24 09:20:16 +00:00
Richard van der Hoff
32c1af54d8 Merge pull request #69 from matrix-org/rav/refactor_body_to_html
Refactor bodyToHtml, and allow onHighlightClicked

Factor out a Highlighter class to avoid passing round the static state
everywhere.

Add an optional 'opts' argument which can take an 'onHighlightClick' member.
2015-12-23 23:50:38 +00:00
Richard van der Hoff
b4436df5e4 Refactor bodyToHtml, and allow onHighlightClicked
Factor out a Highlighter class to avoid passing round the static state
everywhere.

Add an optional 'opts' argument which can take an 'onHighlightClick' member.
2015-12-23 23:50:35 +00:00
Kegan Dougal
05d1d7c82d Better error message for failing to set avatars with no connection 2015-12-23 17:30:25 +00:00
Kegan Dougal
abb170ebde Keep one source of truth (the Notifier) when toggling notification state. Fixes notifications. 2015-12-23 17:06:30 +00:00
Kegan Dougal
a279dce027 Get avatar display and uploads working 2015-12-23 16:52:59 +00:00
Kegan Dougal
19bd39b066 More random tweaks
- Make onBlur reset the EditText to show that it hasn't submitted it.
- Add the user ID of the logged in user to Advanced.
- Remove remnants of the Save/Cancel buttons.
2015-12-23 16:02:18 +00:00
Kegan Dougal
72b8cf1be2 Refactor ChangePassword to get it working. Add 'Account' section because trying to make ChangePassword divs part of the same table as the display name is nigh impossible. Feels okay though 2015-12-23 15:38:28 +00:00
Kegan Dougal
6295cf2ec9 Merge branch 'develop' into matthew/settings 2015-12-23 14:19:42 +00:00
Kegsay
2a0faea838 Merge pull request #67 from matrix-org/kegan/tab-complete
Implement tab complete UX
2015-12-23 14:18:48 +00:00
Kegan Dougal
fb151b35c8 Remove debug logging 2015-12-23 14:17:56 +00:00
Kegan Dougal
e657b40a7e Use ChangeDisplayName for implict display name saving on enter 2015-12-23 14:14:25 +00:00
Kegan Dougal
82ff5c5e52 Factor out handleTabPress and remove passive flag onKeyDown 2015-12-23 13:48:44 +00:00
Kegan Dougal
b80015c69c More comments; remove redundant if statement 2015-12-23 13:33:44 +00:00
Kegan Dougal
1af5018597 General code cleanup / tweaks / fixes
- Swap Phases enum to be using string literals
- Swap roomId prop on UserSettings for a more sane onUserSettingsClose and
  make MatrixChat responsible for swapping the room.
- s/then/done/ when terminating Promise chains to avoid subtle errors.
- Rejig render() of UserSettings so we don't need to indent quite so much.
2015-12-23 11:47:56 +00:00
Kegan Dougal
095f82feee Remove boolean returns 2015-12-23 10:35:54 +00:00
Kegan Dougal
7e1b107f4c Review comments 2015-12-23 09:34:34 +00:00
Kegan Dougal
810e8993d6 Merge branch 'develop' into kegan/tab-complete 2015-12-22 17:44:04 +00:00
Kegan Dougal
62c378a619 Sort out the mess that is Javascript's \b - Fixes vector-im/vector-web#189
\b is *the worst*. From MDN:

Note: JavaScript's regular expression engine defines a specific set of
characters to be "word" characters. Any character not in that set is considered
a word break. This set of characters is fairly limited: it consists solely of
the Roman alphabet in both upper- and lower-case, decimal digits, and the
underscore character. Accented characters, such as "é" or "ü" are,
unfortunately, treated as word breaks.

We fix this by matching on whitespace instead, but then need to tweak the
replace() code since that bluntly replaces the entire match (which now includes
whitespace). It all works now and I can happily tab-complete non-ascii names.
2015-12-22 17:38:24 +00:00
Kegan Dougal
452c265e6a Implement automatically entering tab complete mode after a short delay
This seems to work. Manually tested for sanity.
2015-12-22 16:49:58 +00:00
Kegan Dougal
460f68caef Move RoomMember[] -> MemberEntry[] conversion somewhere sensible
This is required for automatically entering tab-complete mode because
onKeyDown is NOT called in that case, so we need to make sure to have a
membership list hanging around.
2015-12-22 15:38:23 +00:00
Richard van der Hoff
1de42f42e1 Merge pull request #66 from matrix-org/rav/factor_out_scrollpanel
Factor out a separate 'ScrollPanel'
2015-12-22 15:21:23 +00:00
Richard van der Hoff
cdd539c3cd Factor out a separate 'ScrollPanel'
Create an intelligent scrolling list, which doesn't care what it contains, to
try and clean up some of the logic in RoomView.
2015-12-22 15:18:50 +00:00
Kegan Dougal
a20cabb06f Merge branch 'develop' into kegan/tab-complete 2015-12-22 15:16:39 +00:00
Kegan Dougal
e077517faf Ignore more keys when determining if the user is typing
Specifically ignore CTRL, ALT, META, SHIFT, WINDOWS.
2015-12-22 15:13:11 +00:00
David Baker
05d9e1261c Merge remote-tracking branch 'origin/develop' into notif_sync 2015-12-22 14:47:11 +00:00
Kegan Dougal
e541ddb060 Auto-complete clicked suggestions 2015-12-22 11:14:36 +00:00
Richard van der Hoff
cc90f4c0c6 Merge pull request #64 from matrix-org/rav/fix_date_separator
Fix bug with date separator flashing up on scrollback
2015-12-22 11:05:26 +00:00
Richard van der Hoff
360806a8f1 RoomView: add whitespace for disambiguation 2015-12-22 11:04:39 +00:00
Richard van der Hoff
6b07de05f3 Merge pull request #65 from matrix-org/rav/marker_at_top_of_search_results
Add a 'top-of-search' marker
2015-12-22 11:00:00 +00:00
Kegan Dougal
0dbb8d5294 Use MemberAvatar to generate image JSX. Split out entries from tab-complete logic 2015-12-22 10:00:30 +00:00
Matthew Hodgson
ea2405ab3a escape double-slash commands 2015-12-22 00:57:57 +00:00
Matthew Hodgson
618978d955 add appropriate CSS for the TabCompleteBar 2015-12-22 00:47:04 +00:00
Kegan Dougal
c8aaee46d7 Mark a TODO for timeout handling 2015-12-21 17:58:36 +00:00
Kegan Dougal
ba63b5dfff Add image URLs to TabComplete.Entry objects 2015-12-21 17:28:04 +00:00
Kegan Dougal
4e79c3c4c8 Add allowLooping opt for tab completion. Make peeking work. 2015-12-21 17:16:49 +00:00
Kegan Dougal
ab0a277d94 Rewrite tab-complete logic to allow peeking ahead
This primarily means pre-calculating the list of things we'll be looping over
and then returning matches from this list. Make the regex match be more generic
rather than sorta-kinda-user-id-like-ish.
2015-12-21 16:35:39 +00:00
Kegan Dougal
41d4c1d14e Add TabComplete.Entry so we can render images AND text(!) - Add peek() option, all broken. 2015-12-21 14:34:25 +00:00
Kegan Dougal
400b5196bb Add TabCompleteBar. Hook up display to whether we are currently tab completing. 2015-12-21 14:11:34 +00:00
Richard van der Hoff
7c285f9ad0 Add a 'No results' marker when there are no search results at all.
Also reword the 'no more results' marker.
2015-12-21 13:46:27 +00:00
Matthew Hodgson
b9ba4475b8 Merge branch 'develop' into matthew/settings 2015-12-21 13:09:33 +00:00
David Baker
6ea3f21a8e Favicon badges 2015-12-21 12:55:13 +00:00
Richard van der Hoff
765e5bdeb1 Add a 'top-of-search' marker
Ugly as hell, pending better suggestions.

This fixes https://github.com/vector-im/vector-web/issues/547
2015-12-21 12:39:10 +00:00
Kegan Dougal
26dc3cc553 Push up instantiation of TabComplete to RoomView
RoomView is the parent component which creates MessageComposer AND the status
bar. By making RoomView instantiate TabComplete we can scope instances
correctly rather than relying on singleton behaviour through dispatches. This
also makes communication between status bar and the MessageComposer infinitely
easier since they are now sharing the same TabComplete object.
2015-12-21 10:59:10 +00:00
Richard van der Hoff
afadb23f89 Fix bug with date separator flashing up on scrollback
Refactor the event-tile generation loop to go forwards rather than backwards,
which makes it easier to figure out whether we are displaying a continuation of
the previous event, and whether we need a date separator.

Also only display the date separator at the top of the room if there's no more
scrollback to be shown.

This fixes vector-im/vector-web#431
2015-12-21 10:49:00 +00:00
Kegan Dougal
c6d02b2c26 Move tab-complete logic out from MessageComposer
Moved to a `TabComplete` class. Make it more generic (list of strings rather
than RoomMembers) and sort the member list by last_active_ago. Everything still
seems to work.
2015-12-21 10:38:37 +00:00
Richard van der Hoff
ff6d9454fd Merge pull request #63 from matrix-org/rav/paginate_search
Pagination for search results
2015-12-21 09:16:42 +00:00