Commit graph

494 commits

Author SHA1 Message Date
David Baker
a9b6db3f2e Lint 2018-04-30 13:41:04 +01:00
David Baker
37cb8abf13 Fix UX issues with bug report dialog
* Make it use BaseDialog / DialogButtons (also gives it has a top-right 'x' &
   escape to cancel works)
 * Stop misusing the 'danger' CSS class on the buttons. There is nothing dangerous
   about submitting logs.
 * Continued campaign against 'Click here' links.

Fixes https://github.com/vector-im/riot-web/issues/6622
2018-04-30 13:39:46 +01:00
David Baker
fc136607f1 UI fixes in SessionRestoreErrorDialog
* Make the 'delete my data' button not the default
 * Make it red
 * Give it a confirmation dialog
 * Remove the 'cancel' button: what does it mean to cancel an error?
   In this case, it tried again and almost certainly got the same error.
 * Remove the top-right 'x' and don't cancel on esc for the same reason.
 * Move 'send bug report' to a button rather than a 'click here' link
 * Add a 'refresh' button which, even if it's no more likely to work,
   will at least look like it's doing something (it's mostly so if you
   don't have a bug report endpoint, there's still a button other
   than the one that deletes all your data).
2018-04-30 13:39:46 +01:00
David Baker
873993a7ca Clarify, hopefully 2018-04-27 17:56:33 +01:00
David Baker
d3c368e19f typo 2018-04-27 17:53:11 +01:00
David Baker
27b18c457e Lint 2018-04-27 15:56:28 +01:00
David Baker
6d9e07580b UI fixes in SessionRestoreErrorDialog
* Make the 'delete my data' button not the default
 * Make it red
 * Give it a confirmation dialog
 * Remove the 'cancel' button: what does it mean to cancel an error?
   In this case, it tried again and almost certainly got the same error.
 * Remove the top-right 'x' and don't cancel on esc for the same reason.
 * Move 'send bug report' to a button rather than a 'click here' link
 * Add a 'refresh' button which, even if it's no more likely to work,
   will at least look like it's doing something (it's mostly so if you
   don't have a bug report endpoint, there's still a button other
   than the one that deletes all your data).
2018-04-27 12:38:49 +01:00
David Baker
0323f8ed0c Wrap exception handling around all of loadSession
The user might (probably does) have a session even if we haven't actually tried
to load it yet, so wrap the whole loadSession code in the error handler we were
using for restoring sessions so we gracefully handle exceptions that happen
before trying to restore sessions too.

Remove the catch in MatrixChat that sent you to the login screen.  This is
never the right way to handle an error condition: we should only display the
login screen if we successfully determined that the user has no session, or
they explicitly chose to blow their sessions away.
2018-04-27 11:25:13 +01:00
David Baker
db1401f484 Pass false to onFinished from BaseDialog
Everywhere else, onFinished takes a boolean indicating whether the
dialog was confirmed on cancelled, and had function that were
expecting this variable and getting undefined.
2018-04-27 11:19:14 +01:00
David Baker
f70096b8fa Fix error handling on session restore
Fix a number of failures that meant the excellent error handling
we had for failing to restore a session didn't work.

1. .catch on the promise rather than try/catch: it's async
2. Explicit cancel method in SessionRestoreErrorDialog that invokes
   onFinished with `false` because even with the catch fixed, this
   was getting the event as its first arg which is truthy, so
   clicking cancel still deleted your data.
3. DialogButtons: Don't pass onCancel straight into the button event
   handler as this leaks the MouseEvent through as an argument.
   Nothing is using it and it exacerbates failures like this
   because there are surprise arguments.

Fixes https://github.com/vector-im/riot-web/issues/6616
2018-04-26 17:07:58 +01:00
Matthew Hodgson
ce809e16d9 fix i18n thinko on createTrackedDialog 2018-04-17 16:51:17 +01:00
Matthew Hodgson
cb5ff404e1 fix missing i18n 2018-04-15 23:16:31 +01:00
Matthew Hodgson
13765632e9 use new rageshake location 2018-04-13 01:36:41 +01:00
Matthew Hodgson
40a67ca8fe point imports at the new locations 2018-04-13 00:43:44 +01:00
Matthew Hodgson
8ab8f76254 move non-Riot-specific components over from riot-web 2018-04-11 23:58:04 +01:00
Luke Barnard
b80568b1c5 Wrap GeminiScrollbar in a component, enabled forceGemini
Fixes https://github.com/vector-im/riot-web/issues/6294
2018-03-27 13:04:26 +01:00
David Baker
580b68a1b6
Merge pull request #1652 from pvagner/dialog-a11y
Dialog a11y
2018-03-20 11:35:57 +00:00
Luke Barnard
a95f6a9804 Implement transparent RoomTile for use in some places
where a transparent appearance is required (i.e. in MemberInfo
or ChatCreateOrReuseDialog)
2018-03-05 12:36:02 +00:00
Peter Vágner
5e9368e794 Add comments explaining our non standard usage of aria-described-by 2018-02-12 21:13:53 +01:00
Peter Vágner
8f97e9479d Ooops, restore a bit of RoomCreateDialog content I have accidentally
removed while trying to solve merge conflicts (thx @dbkr)
2018-02-08 21:16:57 +01:00
lukebarnard
c1649d1b75 Give dialogs a matrixClient context
Dialogs are mounted outside of the main react tree of MatrixChat,
so they won't have its child context.
2018-02-07 09:45:36 +00:00
Peter Vágner
14991afbe5 Merge branch 'develop' into dialog-a11y 2018-02-06 23:04:15 +01:00
David Baker
6162c0b360 Fix key bindings in address picker dialog
Another regression from https://github.com/matrix-org/matrix-react-sdk/pull/1674

Fixes https://github.com/vector-im/riot-web/issues/5994
2018-02-06 15:01:14 +00:00
Michael Telatynski
2705397bf6 Add local GID==='' check, because Synapse says Group rather than Community
Reset createError when doing check because it is now stale

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-20 13:16:33 +00:00
David Baker
99a72b5b2b Fix autofocus broken in https://github.com/matrix-org/matrix-react-sdk/pull/1674
'focus' attribute was on the wrong thing
2018-01-12 10:52:51 +00:00
David Baker
aa5d42d045 Remove spurious dot 2018-01-12 10:32:36 +00:00
David Baker
292a6c5767
Merge pull request #1674 from aidalgol/rebase-dialogs
Normalise dialogs
2018-01-11 10:49:40 +00:00
David Baker
4c101628b5 Add 'send without verifying' to status bar
Fixes other part of https://github.com/vector-im/riot-web/issues/5936
2018-01-09 13:52:37 +00:00
Aidan Gauland
35780f5ae0 Remove use of deprecated React.PropTypes
Replace all uses of React.PropTypes with PropTypes and importing PropTypes from
'prop-types'.
2017-12-26 14:03:18 +13:00
Aidan Gauland
9531b219d2 Remove unused imports 2017-12-26 12:53:01 +13:00
Aidan Gauland
e6dbc3b863 Use DialogButtons in UnknownDeviceDialog
Use DialogButtons to eliminate duplicate button code.
2017-12-23 17:02:19 +13:00
Aidan Gauland
2674fcb6d3 Use DialogButtons in TextInputDialog
Use DialogButtons to eliminate duplicate button code.
2017-12-23 17:02:19 +13:00
Aidan Gauland
a11146f39d Use DialogButtons in SessionRestoreErrorDialog
Use DialogButtons to eliminate duplicate button code.
2017-12-23 17:02:19 +13:00
Aidan Gauland
93b789438b Use DialogButtons in ConfirmUserActionDialog
Use DialogButtons to eliminate duplicate button code.
2017-12-23 17:02:19 +13:00
Aidan Gauland
7a761dbf6b Use DialogButtons in ChatCreateOrReuseDialog
Use DialogButtons to eliminate duplicate button code.
2017-12-23 17:02:19 +13:00
Aidan Gauland
aecb4650bc Correct order of buttons in CreateGroupDialog
We can't use DialogButtons because the primary button is an <input> element.
2017-12-23 17:02:19 +13:00
Aidan Gauland
c863dbfc76 Use DialogButtons in CreateRoomDialog
Use DialogButtons to eliminate duplicate button code.
2017-12-23 17:02:19 +13:00
Aidan Gauland
0f6125e749 Use DialogButtons in AddressSelector
Use DialogButtons to eliminate duplicate button code.
2017-12-23 17:02:19 +13:00
Aidan Gauland
3b2c61e456 Use DialogButtons in QuestionDialog
Use DialogButtons to eliminate duplicate button code.
2017-12-23 17:02:19 +13:00
Aidan Gauland
9ebd58852c Rebase DeactivateAccountDialog on BaseDialog 2017-12-23 17:02:19 +13:00
Aidan Gauland
c5284eb070 Allow BaseDialog to take a class for the title <div>
Some dialogs need to set additional classes on the `mx_Dialog_title` `div`
element (for example `danger`).
2017-12-23 17:02:19 +13:00
Aidan Gauland
8bb16466d6 Rebase AddressSelector on BaseDialog 2017-12-23 17:02:19 +13:00
Peter Vágner
f2ca02eaf8 SetEmailDialog: use autoFocus prop on the EditableText rather than using
its ref inside onComponentDidMount function. This is shorter better and
has been requested.
2017-12-20 10:13:37 +01:00
Peter Vágner
20c485d85e Move aria-hidden management from the BaseDialog component to the Modal 2017-12-20 10:09:26 +01:00
Peter Vágner
9f5857a7cc Merge branch 'develop' into dialog-a11y 2017-12-14 11:04:59 +01:00
Peter Vágner
642675c96d Address review request comments 2017-12-14 10:31:28 +01:00
Peter Vágner
ab0ff9b781 BaseDialog: split a very long line 2017-12-12 18:55:57 +01:00
David Baker
0d38e7510d
Merge pull request #1600 from matrix-org/dbkr/udd_no_auto_show
Don't Auto-show UnknownDeviceDialog
2017-12-08 16:33:25 +00:00
Peter Vágner
321b1adb99 Elliminate lint errors and warnings 2017-12-08 07:47:08 +01:00
Peter Vágner
4171675221 Add some comments explaining how we are using aria-hidden property to
hide content outside of the BaseDialog to screen reader users.
2017-12-07 09:44:00 +01:00
David Baker
2a01985076 better proptypes 2017-12-06 19:07:12 +00:00
David Baker
0deed4bb88 null guard 2017-12-06 19:05:25 +00:00
Peter Vágner
f9b0243c8e Merge branch 'develop' into dialog-a11y 2017-12-06 11:10:18 +01:00
Peter Vágner
60ada30680 Forgot to turn div displaying error text into an aria-alert in the
create group dialog.
2017-12-05 23:46:02 +01:00
Peter Vágner
a31af39ca8 Applied aria-describedby to all other dialogs that are using BaseDialog.
Also added initial focus where it has not been set.
2017-12-05 13:52:20 +01:00
Peter Vágner
4f83f6cf25 Move keyboard focus management back to the BaseDialog rather than
leaving it in the Modal manager.
We are using Modal manager to load other components not just BaseDialog
and its subclasses and they might require different keyboard handling.
Also depend on focus-trap-react rather than react-focus-trap for locking
keyboard focus inside the dialog. The experience is much nicer and even
the FocusTrap element it-self no longer gains the focus.
On a side note using the FocusTrap element outside the dialog (on
its parent) stops it from working properly.
2017-12-05 08:50:40 +01:00
Peter Vágner
5ccbcf02e2 Several changes improving accessibility of the dialogs
- Wrapped all the modals inside a react-focus-trap component disabling
keyboard navigation outside the modal dialogs
- Disabled our custom key handling at dialog level. Cancelling on esc
key is now handled via FocusTrap component.
- Removed onEnter prop from the BaseDialog component. Dialogs that
submit data all now embed a form with onSubmit handler. And since
keyboard focus is now managed better via FocusTrap it no longer makes
sense for the other dialog types. Fixes
https://github.com/vector-im/riot-web/issues/5736
- Set aria-hidden on the matrixChat outer node when showing dialogs to
disable navigating outside the modals by using screen reader specific
features.
2017-12-03 21:38:21 +01:00
Luke Barnard
fe81fcb8c6 Factor out isCtrlOrCmdKeyEvent, use that in TagPanel
as opposed to the incorrect ctrl || meta
2017-12-01 10:30:49 +00:00
Stefan Parviainen
437a440bdf Add missing id
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-11-30 08:32:18 +01:00
Stefan Parviainen
cb5c9f2c5a Make Dialogs more accessible
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-11-29 21:13:48 +01:00
Luke Barnard
7ec4010881 Make GroupStore use MatrixClientPeg
To avoid weirdness with using a cached matrix client
2017-11-28 11:54:05 +00:00
Aidan Gauland
3358fdc906 Address eslint errors
* Remove space before curly brace.
* Remove unused import.
2017-11-26 16:04:24 +13:00
Aidan Gauland
aaf8106e9e Rebase ConfirmRedactDialog on QuestionDialog
Rewrite the ConfirmRedactDialog component to derive from the QuestionDialog component.
2017-11-26 15:46:24 +13:00
David Baker
65e1d49f37 More sensible buttons in UnknownDeviceDialog
Just say 'Send' (or equiv) if you actually verify all the devices,
rather than 'Send Anyway'.
2017-11-16 17:59:42 +00:00
David Baker
196eafdc7f Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-16 15:59:16 +00:00
David Baker
6f8427a5af Revert rest of https://github.com/matrix-org/matrix-react-sdk/pull/1584
Because apparently the revert did not revert this part
2017-11-16 15:11:47 +00:00
Luke Barnard
dad797d4a2 Run linting --fix 2017-11-16 13:19:36 +00:00
Stefan Parviainen
2c1618bc10 Fix conflict and update strings
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-11-15 20:40:51 +01:00
David Baker
b0027525f3 Wire up Unknown Devices popup for outbound calls 2017-11-15 17:21:04 +00:00
David Baker
93800be742 Factor out showing UnknownDeviceDialog
So we can re-use it for calls that fail due to unknwon devices
2017-11-15 15:15:21 +00:00
David Baker
f8fc6dc83e Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-15 12:11:33 +00:00
Stefan Parviainen
df6d5cc2b4 Pass plain components, rather than functions returning them 2017-11-14 20:09:52 +01:00
Stefan Parviainen
3afbaf61e7 Refactor i18n stuff a bit 2017-11-13 20:19:33 +01:00
Travis Ralston
c5c346f0b7 Merge branch 'develop' into travis/granular-settings 2017-11-13 12:18:41 -07:00
David Baker
0659ac1ccb Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-13 17:45:57 +00:00
Luke Barnard
d179267714 Add prop type 2017-11-10 11:41:36 +00:00
David Baker
820d9c1c25 Show staus bar on Unknown Device Error
Don't pop up the dialog as soon as we can't send a message.

Also removes dispatches used to keep the RoomStatusBar up to date.
We can get the same events straight from the js-sdk via the
pending events event.
2017-11-09 15:58:15 +00:00
Luke Barnard
6eeb91ee2e Display group member profile (avatar/displayname) in ConfirmUserActionDialog
Fixes https://github.com/vector-im/riot-web/issues/5486
2017-11-09 12:24:20 +00:00
Travis Ralston
030633fa90 Merge remote-tracking branch 'matrix-org/develop' into travis/granular-settings 2017-11-08 17:43:38 -07:00
Travis Ralston
2711da28b4 Use the SettingsStore in the UnknownDeviceDialog 2017-11-08 17:43:06 -07:00
Travis Ralston
f7da5836e1 Make blacklistUnverifiedDevices override the level order
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-08 17:41:32 -07:00
David Baker
7b243bf64d
Revert "UnknownDeviceDialog: get devices from SDK" 2017-11-08 18:49:50 +00:00
Luke Barnard
077ca36b05 Rank rooms with shorter matching aliases first 2017-11-08 10:47:45 +00:00
Luke Barnard
b3674f503d Do not search through room topics 2017-11-08 10:32:48 +00:00
Luke Barnard
4c47f75918
Merge pull request #1587 from matrix-org/luke/groups-add-rooms-with-visibility
Add checkbox to GroupAddressPicker for determining visibility of group rooms
2017-11-08 10:04:41 +00:00
Luke Barnard
8fbe50a1cf
Merge pull request #1580 from matrix-org/luke/groups-new-group-settings
Improve group creation UX
2017-11-07 18:55:34 +00:00
Luke Barnard
edc744067f Add checkbox to GroupAddressPicker for determining visibility of group rooms 2017-11-07 18:51:41 +00:00
David Baker
10f15dfc56 Unmounted guard 2017-11-07 17:10:40 +00:00
David Baker
ec560345c7 UnknownDeviceDialog: get devices from SDK
rather than having to have the error message passed in.

This is in preparation for not having the dialog pop up straight
away when a message isn't sent so we don't have to keep the error
object knocking around somewhere.
2017-11-07 16:37:43 +00:00
Luke Barnard
36cd22663a Open group settings when the group is created 2017-11-06 18:02:50 +00:00
Luke Barnard
b88c13d527 Use prefixed class names to avoid collisions with other libraries 2017-11-03 16:02:41 +00:00
Luke Barnard
e84e4ed5f5 Add CSS classes to group ID input in CreateGroupDialog 2017-11-03 15:38:12 +00:00
Stefan Parviainen
d6f1e12bee Fix merge conflict
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-11-01 15:50:45 +01:00
Luke Barnard
302bd6c3e9 Escape dash in regex 2017-10-31 11:48:56 +00:00
Luke Barnard
53938f7998 Change client-side validation of group IDs to match synapse 2017-10-31 10:25:06 +00:00
Stefan Parviainen
53e983f9c7 Fix merge conflict
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-10-25 18:19:27 +02:00
Luke Barnard
27f845a7aa Match on any alias 2017-10-25 12:42:58 +01:00
Luke Barnard
7029ab07fc If no canonical alias, use first alias (and fallback to Unnamed) 2017-10-25 12:38:39 +01:00
Stefan Parviainen
115772d526 Fix merge conflict
Signed-off-by: Stefan Parviainen <pafcu@iki.fi>
2017-10-23 19:57:52 +02:00
Luke Barnard
a133fd1cf4 Fix "failed to create community" message 2017-10-23 14:57:40 +01:00