Commit graph

1505 commits

Author SHA1 Message Date
Michael Telatynski
d4d51dc61f Rip out the remainder of Bluebird 2019-11-18 10:03:05 +00:00
Travis Ralston
6b726a8e13 Implement the bulk of the new widget permission prompt design
Part 1 of https://github.com/vector-im/riot-web/issues/11262

This is all the visual changes - the actual wiring of the UI to the right places is for another PR (though this PR still works independently).

The help icon is known to be weird here - it's a bug in the svg we have. The tooltip also goes right instead of up because making the tooltip go up is not easy work for this PR - maybe a future one if we *really* want it to go up.
2019-11-15 14:26:16 -07:00
Bruno Windels
0f39a9f72d fix pr feedback 2019-11-15 17:29:38 +01:00
Bruno Windels
d0914f9208 allow label to be empty on power selector 2019-11-15 16:14:18 +01:00
Bruno Windels
b278531f2f add IconButton as in design 2019-11-15 16:14:18 +01:00
Michael Telatynski
168b1b68bb Revert "s/.done(/.then(/ since modern es6 track unhandled promise exceptions"
This reverts commit 09a8fec2
2019-11-12 11:56:21 +00:00
Michael Telatynski
09a8fec261 s/.done(/.then(/ since modern es6 track unhandled promise exceptions 2019-11-12 11:51:23 +00:00
Michael Telatynski
2eddb6ca01 DRY context menu placement algorithms 2019-11-12 11:24:14 +00:00
Michael Telatynski
1c4d89f2d7 Migrate all standard Context Menus over to new custom framework 2019-11-11 17:53:17 +00:00
Travis Ralston
bdcf3890a5 Fix HTML fallback in replies
Correctly encode the `body` to avoid problems down the line. We also convert newlines to `<br/>` to better represent the message as a fallback.

Fixes https://github.com/vector-im/riot-web/issues/9413
2019-11-08 16:07:11 -07:00
Travis Ralston
e46976be72 Match widgets up with their integration manager 2019-10-29 11:49:15 -06:00
Bruno Windels
3e360c156a bring LazyRenderList up to React 16 standards, cleanup & docs 2019-10-24 17:56:26 +02:00
Michael Telatynski
8d9dc195d5 Make ARIA happier with DateSeparator and tidy ELS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-23 18:32:10 +01:00
Michael Telatynski
93ecc9839b Fix linty failures 2019-10-22 13:49:02 +01:00
Michael Telatynski
3400808f6e Use navigation treeview aria pattern for roomlist sublists and tiles
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-17 15:53:39 +01:00
Michael Telatynski
6e33cc0650
Merge pull request #3433 from matrix-org/t3chguy/nvl/react16/EventListSummary
Summarise state events after room creation
2019-10-11 09:53:26 +01:00
Michael Telatynski
7160922b77
Merge pull request #3541 from matrix-org/t3chguy/fix_150rc1
SettingsFlag always run ToggleSwitch fully-controlled
2019-10-10 09:39:33 +01:00
Michael Telatynski
0d42b8629e remove SettingsFlag manualSave altogether
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 23:20:59 +01:00
Michael Telatynski
685c2f494a actually always run fully controlled
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 22:33:14 +01:00
Michael Telatynski
2b9c102f07 SettingsFlag always run ToggleSwitch fully-controlled
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 22:27:49 +01:00
Michael Telatynski
58317b1608 Use Keyboard Key variables instead of hardcoded strings
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 19:59:11 +01:00
Michael Telatynski
ff18a04da1
Merge pull request #3529 from matrix-org/t3chguy/react16_cleanup2
React error/warning cleanup
2019-10-09 16:26:24 +01:00
J. Ryan Stinnett
e905abe5ce Add label to rageshakes for React soft crashes
This adds a label all rageshakes submitted via the React error boundary marking
them as soft crashes for triage.

Fixes https://github.com/vector-im/riot-web/issues/11072
2019-10-09 11:59:10 +01:00
Michael Telatynski
efeb6e87c4 Use new React Shallow renderer with hooks support
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:51:08 +02:00
Michael Telatynski
34530843f4 Factor out generic EventListSummary from MELS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-09 12:50:03 +02:00
Michael Telatynski
4c82496bca export ToggleSwitch
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-08 12:22:22 +01:00
Michael Telatynski
a03e9e7a4f tidy ToggleSwitch
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-08 12:18:44 +01:00
Michael Telatynski
a782baf510 React error/warning cleanup
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-08 12:10:37 +01:00
Michael Telatynski
a0de7d5f14 Cull some easily fixable errors which make the console a mess
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-03 21:47:19 +01:00
Michael Telatynski
8ef61ce43e
Merge pull request #3514 from matrix-org/t3chguy/accessibility3
Various ARIA a11y fixes.
2019-10-03 11:09:01 +01:00
Michael Telatynski
f1db0cf027 Various ARIA a11y fixes.
Notate RightPanel tabs.
Shorten Screen Reader queues.
Make AccessibleTooltipButton screen reader friendly
Flatten DOM for Sticker button using React Fragments

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-03 09:35:39 +01:00
J. Ryan Stinnett
0e8dc24c3f Add a basic error boundary for the entire app
This adds a basic error boundary around the entire app to catch errors during
rendering and present the user with the options on how to proceed. This is not
implemented as a modal so that it could be used selectively in portions of the
app as well, such as just the `RoomView`.

Fixes https://github.com/vector-im/riot-web/issues/11009
2019-10-02 17:31:22 +01:00
Bruno Windels
44e68f16ba use a way of unmounting the tooltip that seems to work 100% of the time
¯\_(ツ)_/¯
2019-10-02 14:32:08 +02:00
Bruno Windels
55c1c5e582 tell tooltip when format bar gets hidden, as it won't be unmounted 2019-10-02 14:31:42 +02:00
Travis Ralston
7d1a04cb12
Merge pull request #3500 from matrix-org/travis/permalinks
Support local permalinks for unfederated instances
2019-10-01 08:41:23 -06:00
Travis Ralston
fc66e69c02 Rename RoomPermalinkCreator -> Permalinks due to scope
The file handles more than just a RoomPermalinkCreator, so we should name it accordingly.
2019-09-30 20:39:58 -06:00
Travis Ralston
2824f468d9 Update pill processing to handle better permalinks 2019-09-30 20:27:51 -06:00
Travis Ralston
64aa6695f5 Move matrix-to.js to utils/permalinks/RoomPermalinkCreator
Just a little bit of refactoring to make the feature of custom prefixes a bit easier.
2019-09-30 12:16:46 -06:00
Michael Telatynski
2621ad1b43 Group room tiles in room sub list in the room list for ARIA
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-30 16:04:43 +01:00
Michael Telatynski
14e3cb8736 Allow keyboard control even without a screen reader
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-26 13:52:09 +01:00
Michael Telatynski
3672832d38 conform to style
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-25 18:10:05 +01:00
Michael Telatynski
ab3e5c3b87 Merge branches 'develop' and 't3chguy/accesibility' of github.com:matrix-org/matrix-react-sdk into t3chguy/accesibility 2019-09-25 16:59:46 +01:00
Michael Telatynski
e01be212e6 improve Settings Accessibility for Toggles and Dialogs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-25 09:25:11 +01:00
Michael Telatynski
4a5ee4a969 Put aria-disabled on AccessibleButtons and attempt to a11y ToggleSwitch
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-25 09:01:49 +01:00
Bruno Windels
8a1c1bbec4 implement RoomAliasField component
adding a postfix to Field to show the domain name
2019-09-23 11:22:30 +02:00
Michael Telatynski
d5db67be38 Switch to createReactClass: views/elements & views/groups. React 16 :D
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-06 18:35:52 +01:00
Sorunome
4ae130bd27
add license header, descriptive comment and change to class 2019-08-29 18:13:52 +02:00
Sorunome
fe9ae46ffb
Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into soru/spoilers 2019-08-28 20:23:24 +02:00
Travis Ralston
838e115b72
Merge pull request #3338 from matrix-org/t3chguy/fix_jitsi_persisted_breaking_randomly
Only Destroy the expected persistent widget, not *ANY*
2019-08-28 10:49:29 -06:00
Travis Ralston
b3cda4b19a Support multiple integration managers behind a labs flag
Fixes https://github.com/vector-im/riot-web/issues/10622
Implements [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957)

Design is not final.
2019-08-23 09:12:40 -06:00
Michael Telatynski
cd6a980c7e Only Destroy the expected persistent widget, not *ANY*
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-22 16:57:51 +01:00
Travis Ralston
6f7bbf958e Remove tooltipClassName from the Field's input
React doesn't want the property on the <input>, so we'll take it off.
2019-08-21 12:51:16 -06:00
Travis Ralston
f55a40001c Touch up settings: alignment, spacing, error states
Fixes https://github.com/vector-im/riot-web/issues/10554

Issues fixed:
* Fields were not ~30px from the avatar (too much right margin)
* Tooltips overflowed the dialog on some resolutions
* SetIdServer didn't have an error state for making the field red
* Spacing between sections in Discovery was wrong (fixed by just removing the problematic n+2 selector - it didn't help anything)
2019-08-20 13:20:07 -06:00
Jason Robinson
29085895a7 Fix regression on widget panel edit button
Due to commit ffa49df889
the parameters for the call to open a widget in edit mode from the
widget panel in a room has broken. The `screen` parameter needs
to be prefixed with `type_` as it was before.

This corresponds to parameters supplied when creating the URL when
opening a widget in edit mode through Scalar screens.

Signed-off-by: Jason Robinson <jasonr@matrix.org>
2019-08-20 15:55:57 +03:00
Michael Telatynski
a96df333e9
Merge pull request #3310 from matrix-org/t3chguy/fix_reply_parent_redacted
Fix showing events which were replied to and then redacted
2019-08-16 19:19:25 +01:00
Travis Ralston
5fe691cf33 Double equals 2019-08-15 13:33:02 -06:00
Travis Ralston
e2f013ddb4 Appease the linter
This looks awkward, but should pass.
2019-08-15 13:31:45 -06:00
Travis Ralston
27504e1578 Prompt for terms of service on integration manager changes
Part of https://github.com/vector-im/riot-web/issues/10539
2019-08-15 13:28:23 -06:00
David Baker
4afed0fab4
Merge pull request #3313 from matrix-org/t3chguy/fix_jitsi_persisted_breaking_randomly
Fix Persisted Widgets (Jitsi) randomly closing on room change
2019-08-15 10:52:24 +01:00
Michael Telatynski
6f529852cd Skip forceUpdate in ReplyThread if the redacted event is not relevant
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-14 23:27:04 +01:00
Michael Telatynski
7b17ea1fa5 Fix Persisted Widgets (Jitsi) randomly closing on room change
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-14 23:15:49 +01:00
David Baker
e2c5dc6bac
Merge pull request #3300 from matrix-org/dbkr/change_is
Add UI in settings to change ID Server
2019-08-14 09:42:20 +01:00
Michael Telatynski
a44d61fb75 add copyright
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-13 18:17:42 +01:00
Michael Telatynski
6589e5dab9 Fix showing events which were replied to and then redacted 2019-08-13 18:13:47 +01:00
David Baker
860a9dbc82 s/tooltip/tooltipContent/ 2019-08-13 11:01:04 +01:00
David Baker
06905bc5bb Actually appease linter 2019-08-12 12:05:25 +01:00
David Baker
417d9b6af8 nicer way to appease linter 2019-08-12 11:50:11 +01:00
Travis Ralston
ffa49df889 Refactor integration manager handling into a common place
It was already in a common place, but this is the boilerplate for supporting multiple integration managers, and multiple integration manager sources. 

For https://github.com/vector-im/riot-web/issues/4913 / https://github.com/vector-im/riot-web/issues/10161
2019-08-09 16:08:06 -06:00
David Baker
4075cdde7f lint 2019-08-09 18:59:57 +01:00
David Baker
c76514fceb Add UI in settings to change ID Server
Just changes the current ID server being used

To come in subsequent PRs:
 * Store this in account data
 * Check for terms or support the proper UI for accepting terms when setting
 * Support disconnecting

Part 1 of https://github.com/vector-im/riot-web/issues/10094
Requires https://github.com/matrix-org/matrix-js-sdk/pull/1013
2019-08-09 18:07:58 +01:00
David Baker
fcdbce1dda Change throttle to debounce
And add an explanation of whyI think one's more apropriate than the
other for this.
2019-08-09 15:30:05 +01:00
Bruno Windels
66ef08120e
Merge pull request #3282 from matrix-org/bwindels/extract-common-editor-code
Split MessageEditor up in edit-specifics & reusable parts for main composer
2019-08-07 07:58:52 +00:00
Bruno Windels
299cf8542c Split MessageEditor in edit-specifics & reusable part for main composer 2019-08-05 15:31:18 +02:00
Michael Telatynski
224dac3ffb Remove withMatrixClient as we are committed to using Contexts
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-05 12:26:31 +01:00
Bruno Windels
9d49a5bb73 pass caret to history manager upon initial render
otherwise caret is put at editor start when undoing last step
2019-08-01 11:28:01 +02:00
Bruno Windels
234404e598 add mod+z/y shortcuts, set editor state to what history manager returns 2019-08-01 11:27:09 +02:00
Bruno Windels
98bc0d24f4 push changes to history manager 2019-08-01 11:26:20 +02:00
Michael Telatynski
1087e04bb5 Replace React.PropTypes with usage of the prop-types package
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-31 12:19:29 +01: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
J. Ryan Stinnett
cef67d5784
Merge pull request #3245 from matrix-org/jryans/tooltip-larger-buffer
Tweak interactive tooltip buffer area allow for overshoot
2019-07-25 13:16:20 +01:00
J. Ryan Stinnett
f5fbd30a28 Tweak interactive tooltip buffer area allow for overshoot
This uses a larger buffer area around the tooltip, as it easy to overshoot and
mouse the cursor past the tooltip.

Fixes https://github.com/vector-im/riot-web/issues/10400
2019-07-25 12:17:07 +01:00
J. Ryan Stinnett
2d4264c39d Keep widget URL in permission screen to one line
This keeps the widget URL to one line max, so that the allow button will always
be visible. The full URL can be viewed by hovering.

Fixes https://github.com/vector-im/riot-web/issues/10402
2019-07-23 18:06:37 +01:00
J. Ryan Stinnett
846a908bb4 Add missing copyright header 2019-07-23 17:52:00 +01:00
Bruno Windels
58fd828944
Merge pull request #3241 from matrix-org/bwindels/dofocuscomposer
Restore manual composing focusing logic
2019-07-23 11:55:44 +00:00
David Baker
2eb8a8879b
Merge pull request #3199 from matrix-org/dbkr/terms
ToS for ISes/IMs: prompt on use screen
2019-07-23 10:32:11 +01:00
Bruno Windels
ceb53dc0bb Revert "remove unnessary manual focussing of composer"
This reverts commit 57abbc4273.
2019-07-23 09:13:51 +02:00
J. Ryan Stinnett
09c2d899ac Defer IM token until widget is shown and permission granted
This defers the work to request the IM token when displaying a widget until
after we know that widget will actually be shown and the user has granted
permission for this widget to be displayed.

This is useful in general to avoid making unnecessary token checks, but it's
particularly helpful with the new Terms API, so that we only show the Terms flow
when widget are actually being used (as opposed to entering the room where
widgets exist, but haven't been shown / permitted).

Part of https://github.com/vector-im/riot-web/issues/10088
2019-07-22 11:50:54 +01:00
Bruno Windels
4fa7302f69
Merge pull request #3224 from matrix-org/bwindels/focus-composer-on-type
Focus composer when typing anywhere in the app
2019-07-18 16:10:23 +00:00
Bruno Windels
03f577bea9 use keydown here, as its a div element 2019-07-17 17:23:19 +02:00
Bruno Windels
50c88279a0 remove non-existing keypress handler 2019-07-17 17:05:56 +02:00
J. Ryan Stinnett
fc8cdc5661 Improve interactive tooltip safe mousing area
This adds a more complex trapezoidal safe area between the button that triggers
the tooltip and the tooltip itself. It should be easier to move from the button
into the tooltip without accidentally closing it.

Fixes https://github.com/vector-im/riot-web/issues/10185
2019-07-17 14:11:27 +01:00
Bruno Windels
57abbc4273 remove unnessary manual focussing of composer
now that composer is focused automatically when no other shortcuts
apply, remove the manual focusing we have in place where it's not needed
2019-07-15 18:21:10 +02:00
Bruno Windels
507b89fc61 manually attach input event handler, as React doesn't pass inputType 2019-07-11 18:46:56 +02:00
Michael Telatynski
8d4356a5b9 Show anything other than ban/invite -> leave as a kick
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-10 08:57:00 +01:00
David Baker
83f697a9a2 lint 2019-07-09 19:01:22 +01:00
David Baker
d4af8d4993 Use showIntegrationsManager in other places 2019-07-09 18:56:39 +01:00
David Baker
54aaabac74 Initial support for ToS dialogs for IS/IM
as per MSC2140
2019-07-09 18:51:56 +01:00
Michael Telatynski
349afb13f3
Merge pull request #3164 from matrix-org/t3chguy/fix_proptypes_mismatches
Fix some React errors
2019-07-09 10:59:29 +01:00
Bruno Windels
f6e71b2335 turn flag into options object 2019-07-08 16:55:56 +02:00
Bruno Windels
888e4d1ec2 preserve reply fallback when editing 2019-07-08 15:25:44 +02:00
Michael Telatynski
c2905bd33b make things a tad saner
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-06 11:16:01 +01:00
Michael Telatynski
89ece266c6 Make id used in EditableItemList unique, namespace mx_EditableItemList_*
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-06 11:15:10 +01:00
Michael Telatynski
6b9c6a31f0 Don't show Remove button in ImageView if can't redact, delint ImageView
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-06 10:42:14 +01:00
Michael Telatynski
000f7e8007
Merge pull request #3103 from matrix-org/t3chguy/edit_skip_if_no_edit
If oldContent matches newContent, skip sending the edit
2019-07-06 08:52:58 +01:00
J. Ryan Stinnett
5496a4dce6 Fix interactive tooltip null target error
Fixes https://github.com/vector-im/riot-web/issues/10232
2019-07-05 15:02:09 +01:00
David Baker
668d24111c
Merge pull request #3173 from matrix-org/t3chguy/MELS_3pid
MELS handle m.room.third_party_invite
2019-07-03 16:02:10 +01:00
Bruno Windels
353f5a205c
Merge pull request #3170 from matrix-org/bwindels/handle-associated-failures
Handle associated event send failures
2019-07-03 09:02:58 +00:00
Michael Telatynski
429b8e94df MELS handle m.room.third_party_invite
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-03 08:58:34 +01:00
J. Ryan Stinnett
cf8eeedcc7
Merge pull request #3169 from matrix-org/jryans/reactions-tooltip-tweaks
Improve interactive tooltip hover behaviour
2019-07-02 18:28:09 +01:00
Bruno Windels
daa2250023 fix lint 2019-07-02 18:30:57 +02:00
Bruno Windels
3fd96008c3 Fixup: dont assume there is a prior edit 2019-07-02 17:34:07 +02:00
Bruno Windels
357ad3d50c cancel pending edit when sending new edit 2019-07-02 14:52:29 +02:00
J. Ryan Stinnett
a4587c5013
Merge pull request #3165 from matrix-org/t3chguy/tooltip_accessible_button
Add AccessibleTooltipButton and use it for RoomSubList buttons
2019-07-02 10:34:51 +01:00
Michael Telatynski
904a096f72
Update AccessibleTooltipButton.js 2019-07-02 10:28:36 +01:00
J. Ryan Stinnett
dd94bf799d Improve interactive tooltip hover behaviour
This gives the interactive tooltip a more natural hover behaviour by removing
the full screen div behind it. This allows the target button to keep its hover
state, for example.

This also removes the click to close behaviour, which was too easy to trigger
accidentally.

Fixes https://github.com/vector-im/riot-web/issues/10179
Fixes https://github.com/vector-im/riot-web/issues/10222
Fixes https://github.com/vector-im/riot-web/issues/10225
2019-07-01 18:00:59 +01:00
Michael Telatynski
46a6043e9b Use title prop instead to minimize changes
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-30 11:00:21 +01:00
Michael Telatynski
8ed336ea08 Add AccessibleTooltipButton and use it for RoomSubList buttons
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-30 10:58:59 +01:00
Michael Telatynski
d774d96290 Fix some React errors
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-30 10:41:39 +01:00
Michael Telatynski
e591d3ef76 take dirty-flag into account for editing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-29 06:52:19 +01:00
Michael Telatynski
bf9353f3af Merge branches 'develop' and 't3chguy/edit_skip_if_no_edit' of github.com:matrix-org/matrix-react-sdk into t3chguy/edit_skip_if_no_edit 2019-06-29 06:45:06 +01:00
Michael Telatynski
443c7343a0 Merge branches 'develop' and 't3chguy/fix_MELS_labs' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix_MELS_labs 2019-06-29 06:36:20 +01:00
J. Ryan Stinnett
e8fba4f770 Change interactive tooltip to only flip when required
This changes the interactive tooltip to only flip around when the tooltip
content would be near the window edge.

Fixes https://github.com/vector-im/riot-web/issues/10176
2019-06-26 18:24:34 +01:00
J. Ryan Stinnett
67130cb45f Condense isInRect 2019-06-25 11:57:55 +01:00
J. Ryan Stinnett
72bfc3b5ea Improve API and interactivity of new tooltip
This reworks the API the `InteractiveTooltip` component so that it's more
natural to use just like other React components. You can now supply the target
component as a child and the tooltip content as a prop.

In addition, this tweaks the interactivity to keep the tooltip on screen until
you move the mouse away from the tooltip and its target.

Part of https://github.com/vector-im/riot-web/issues/9753
Part of https://github.com/vector-im/riot-web/issues/9716
2019-06-24 17:32:36 +01:00
J. Ryan Stinnett
f366f7d2b3
Merge pull request #3131 from matrix-org/jryans/interactive-tooltip
Add interactive tooltip style
2019-06-24 15:42:02 +01:00
Michael Telatynski
f3641eaa32 Add ability to render null-rejoins in Timeline and MELS
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-23 21:41:28 +01:00
Bruno Windels
1c7af38d83
Merge pull request #3126 from matrix-org/bwindels/caret-refactoring
Editor caret improvements
2019-06-21 15:02:41 +00:00
J. Ryan Stinnett
32bf4588dd Center tooltip along top or bottom of target
This adjusts the positioning to work more the way we want:

* Tooltip is position on the top or bottom edge of the target depending on where
  space is available
* Tooltip and chevron are centered

In addition, more bits borrowed from `ContextualMenu` are not needed, so they
have been removed for simplicity.

Part of https://github.com/vector-im/riot-web/issues/9753
Part of https://github.com/vector-im/riot-web/issues/9716
2019-06-21 15:04:19 +01:00
J. Ryan Stinnett
6dcdad028e Clone ContextualMenu to InteractiveTooltip
As part of reactions and editing work, we're adding a new style of tooltip that
allows interacting with the content of the tooltip.  `ContextualMenu` is closest
out of the things we have today, but it doesn't position in quite the way we
want and it's already quite complex.

To get started, let's first clone that to a new `InteractiveTooltip`.

Part of https://github.com/vector-im/riot-web/issues/9753
Part of https://github.com/vector-im/riot-web/issues/9716
2019-06-21 15:04:19 +01:00
Bruno Windels
b16bc0178a insert manually, as insertHTML command moves caret inconsistently
across browsers
2019-06-19 17:42:18 +02:00
J. Ryan Stinnett
bb4b5d7798 TooltipButton rename step 2 of 2 2019-06-19 11:32:03 +01:00
J. Ryan Stinnett
ab4c5f0152 TooltipButton rename step 1 of 2 2019-06-19 11:30:37 +01:00
J. Ryan Stinnett
4ec7a8ddff Fix casing of TooltipButton
My brain can't deal with two different ways to write "Tooltip", so this
converges the naming to match the rest of the code base. Separate commits will
fix up the file names for case-insensitive file systems.
2019-06-19 11:26:13 +01:00
Bruno Windels
63fba611c0
Merge pull request #3108 from matrix-org/bwindels/edit-room-notif-pill
Support @room pills while editing
2019-06-18 16:43:14 +00:00
Travis Ralston
8f6e8c1ec7 Appease the linter 2019-06-17 15:51:14 -06:00
Travis Ralston
d2d0cb2e9e Port AppTile (widgets) over to new integration manager dialog props 2019-06-17 15:34:30 -06:00
Travis Ralston
a5f296457f Make the Manage Integrations Button defer scalar auth to the manager
This moves the responsibility of creating a URL to open from the button (and other components) to the integrations manager dialog itself.

By doing this, we also cut down on scalar API calls because we don't pick up on account information until the user opens the dialog.
2019-06-17 15:29:28 -06:00
Bruno Windels
eb4ff50c3c do parts creation only in PartCreator to not scatter dependencies 2019-06-14 18:28:44 +02:00
Bruno Windels
3cfdd518ee detect emote when sending (and trim "/me " for content) 2019-06-14 11:02:20 +02:00
Michael Telatynski
41b995df3c If oldContent matches newContent, skip sending the edit
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-13 22:56:32 +01:00
Bruno Windels
41e41269dc use EditorStateTransfer to pass on state to newly mounted editor 2019-06-12 18:52:34 +02:00
Sorunome
d0f78e9d44
stop propagation of click events on un-hiding the spoiler 2019-06-11 22:13:47 +02:00
Sorunome
eddac4b188
blur spoilers 2019-06-11 21:08:45 +02:00
J. Ryan Stinnett
f0d67e0454 Revert "Merge pull request #3019 from matrix-org/travis/sr/fix-timeline"
This reverts commit 9a1a9825b0, reversing
changes made to 62dc83310a.
2019-05-28 12:22:22 +01:00
Bruno Windels
25e2c747ed focus main composer after cancel or saving edit 2019-05-27 16:26:21 +02:00
Bruno Windels
e193522db1 PR feedback: put findPrev/NextEditableEvent in one function with flag 2019-05-27 16:22:55 +02:00
Bruno Windels
fbb79e4686 don't navigate to next/prev message when editor has modifications
to prevent losing modifications by accident
2019-05-24 14:46:34 +02:00
Bruno Windels
3591eedcfa move between editable events with arrow keys 2019-05-24 14:42:33 +02:00
Bruno Windels
3468cef654
Merge pull request #3013 from matrix-org/bwindels/editor-formatting
Message editing: preserve and re-apply formatting
2019-05-24 07:34:05 +00:00
Travis Ralston
14dc4b47fa Merge branch 'develop' into travis/feature/wellknown2 2019-05-22 23:05:54 -06:00
Travis Ralston
9a1a9825b0
Merge pull request #3019 from matrix-org/travis/sr/fix-timeline
Make the timeline less noisy for screen readers (mk II)
2019-05-22 19:18:40 -06:00
Travis Ralston
62dc83310a
Merge pull request #3020 from matrix-org/travis/sr/edit
Label message edit field as such for screen readers
2019-05-22 16:30:45 -06:00
Travis Ralston
6edf760943 Mute avatars and read receipts on event tiles
This reduces overall noise from the screen reader. It was reading the alt attribute from the sender avatar, which was just a mxid. The read receipts were just nonsensical noise.

Fixes https://github.com/vector-im/riot-web/issues/2716
Fixes https://github.com/vector-im/riot-web/issues/5697
See https://github.com/vector-im/riot-web/issues/9747
2019-05-22 15:18:51 -06:00
Travis Ralston
85a024175b Hide flair from screen readers
To have less noise when they run over the sender profile.

See https://github.com/vector-im/riot-web/issues/9747
2019-05-22 15:18:46 -06:00
Sorunome
d8f4512439
add basic spoiler support 2019-05-22 20:41:27 +02:00
Travis Ralston
6c0213bb3d
Revert "Make the timeline less noisy for screen readers" 2019-05-22 10:54:51 -06:00
Travis Ralston
983214f4bf
Merge pull request #3007 from matrix-org/travis/sr/mute-timeline
Make the timeline less noisy for screen readers
2019-05-22 09:55:23 -06:00
Bruno Windels
53b6586986 re-apply markdown when saving a message 2019-05-22 16:19:07 +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
Travis Ralston
a551ef1a72 Label message edit field as such for screen readers
See https://github.com/vector-im/riot-web/issues/9747
2019-05-21 20:00:15 -06:00
Travis Ralston
4779144b2e Mute avatars and read receipts on event tiles
This reduces overall noise from the screen reader. It was reading the alt attribute from the sender avatar, which was just a mxid. The read receipts were just nonsensical noise.

Fixes https://github.com/vector-im/riot-web/issues/2716
Fixes https://github.com/vector-im/riot-web/issues/5697
See https://github.com/vector-im/riot-web/issues/9747
2019-05-21 18:56:46 -06:00
Travis Ralston
5ae23fdb27 Hide flair from screen readers
To have less noise when they run over the sender profile.

See https://github.com/vector-im/riot-web/issues/9747
2019-05-21 18:55:01 -06:00
Travis Ralston
907c7ed119
Merge pull request #2994 from matrix-org/travis/screenreader/topleftmenu
Update TopLeftMenu for accessibility: Keyboard shortcut, reduced screen reader noise
2019-05-21 09:52:26 -06:00
Bruno Windels
2d4d608ed6
Merge pull request #2997 from matrix-org/bwindels/pill-avatars
Message editing: render avatars for pills in the editor
2019-05-21 12:11:06 +00:00
Bruno Windels
b00a38a1e5 apply mx_EventTile_content to editor, so it gets the same right margin
this way we don't have to include it in the magic number
2019-05-21 12:18:20 +02:00
Travis Ralston
3476be3327 Merge branch 'develop' into travis/feature/wellknown2 2019-05-20 19:50:02 -06:00
Matthew Hodgson
d3f06763b3
Merge branch 'develop' into matthew/twemoji 2019-05-20 16:38:44 +01:00
J. Ryan Stinnett
0e5f0f24cc Extract MELS-style comma separated list to shared utility
This allows other UI components to use the same formatting for a long list.
2019-05-20 15:21:18 +01:00
Bruno Windels
710338c01f pass member and room to editor pills to get avatar url 2019-05-20 10:28:26 +02:00
Matthew Hodgson
dc72641264 replace emojione with twemoji. completely untested & debugged & unoptimised 2019-05-19 15:23:43 +01:00
Travis Ralston
c5757d8303 Support CTRL+I for opening TopLeftMenu 2019-05-17 15:29:16 -06:00
Bruno Windels
62b8973e72 cancel the edit when pressing escape 2019-05-17 15:35:14 +01:00
Bruno Windels
ca2e6d8eb2 Message editing: shift+enter for newline, enter to send 2019-05-17 10:22:02 +01:00
Travis Ralston
0c7aa39273 Merge branch 'develop' into travis/feature/wellknown2 2019-05-16 12:59:50 -06:00
Bruno Windels
245f48a22c set caret on mount as we usually do, so FF doesn't enter 2 newlines 🤯 2019-05-16 18:39:20 +01:00
J. Ryan Stinnett
0e369bd12e
Merge pull request #2977 from matrix-org/jryans/encrypted-reactions
Use `getRelation` helper
2019-05-16 09:45:09 +01:00
J. Ryan Stinnett
33885cb864 Use getRelation helper
Use the `getRelation` helper to ensure we always read relation info from the
wire content as required in E2E rooms.
2019-05-16 09:25:33 +01:00
Travis Ralston
6f22acc3c6
Merge pull request #2979 from aaronraimist/imageview-tooltip
Add tooltips to rotate and close buttons in ImageView (#9686)
2019-05-15 21:14:20 -06:00
Aaron Raimist
c38b5cabb1
Allow the strings to be translated
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-05-15 22:11:51 -05:00
Aaron Raimist
bfd37d8089
Add tooltips to rotate and close buttons in ImageView (#9686)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-05-15 22:06:02 -05:00
Bruno Windels
085f2d199d focus editor after clicking edit 2019-05-15 17:17:35 +01:00
Bruno Windels
6366371c0d add * to fallback messages for edits 2019-05-15 15:54:05 +01:00
Bruno Windels
5805a88ab9 adjust to js-sdk changes of marking original event as replaced 2019-05-15 11:54:26 +01:00
Bruno Windels
d83e278f6b PR feedback, cleanup 2019-05-15 09:46:08 +01:00
Bruno Windels
dc21faa240 send edit also in n.new_content field
so we can have fallback content in the regular content for clients
that don't support edits. Note that we're not reading m.new_content
yet as it's going to be a bit of a headache to change this.

So for now just sending the edit in both the normal content and
the m.new_content subfield, so all events out there already
are well-formed
2019-05-14 16:32:08 +01:00
Bruno Windels
45991bc3de replace original event if there have been previous edits 2019-05-14 15:39:24 +01:00
Bruno Windels
e2388afb51 consistent naming between serialize and deserialize modules 2019-05-14 15:39:24 +01:00
Bruno Windels
759a4a54ef send the actual m.replace event from composer content 2019-05-14 15:38:16 +01:00
Bruno Windels
a3b02cf0cc make logging quiet 2019-05-14 15:38:16 +01:00
Bruno Windels
4ff37ca046 don't show model for now 2019-05-14 15:38:16 +01:00
Bruno Windels
9e0816c51c find caret offset and calculate editor text in same tree-walking algo
instead of having the same logic twice
2019-05-14 15:38:16 +01:00
Bruno Windels
7ebb6ce621 WIP commit, newlines sort of working 2019-05-14 15:38:16 +01:00
Bruno Windels
8d97c0033e catch this for now as caret behaviour is still a bit flaky 2019-05-14 15:38:16 +01:00
Bruno Windels
64b171198c rerender through callback instead of after modifying model
this way rendering is centralized and we can better rerender
from interaction in the autocompleter
(we didn't have access to caret before)
2019-05-14 15:38:16 +01:00
Bruno Windels
317e88bef2 initial hacky hookup of Autocomplete menu in MessageEditor 2019-05-14 15:38:16 +01:00
Bruno Windels
a2f1f49972 update the DOM manually as opposed through react rendering
react messes up the DOM sometimes because of, I assume, not
being aware of the changes to the real DOM by contenteditable.
2019-05-14 15:38:16 +01:00
Bruno Windels
6be6492cd2 initial parsing of pills for editor 2019-05-14 15:38:16 +01:00
Bruno Windels
76bb56a2bf initial hookup editor code with react component 2019-05-14 15:38:16 +01:00
Bruno Windels
6599d605cd wire up editor component (somewhat hacky) 2019-05-14 15:38:16 +01:00
Travis Ralston
25e3f7888e newline for the linter 2019-05-13 18:31:43 -06:00
Travis Ralston
e4576dac28 Render underlines and tooltips on custom server names in auth pages
See https://github.com/vector-im/riot-web/issues/9290
2019-05-13 17:16:40 -06:00
J. Ryan Stinnett
26f732723e Animate tooltips when hiding as well as showing
This uses the same animation style as on show, but twice as fast.
2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
aec14e64fa Throttle validation in response to user input
This avoids the case of the password complexity progress jumping wildly for
every character you type.
2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
4f41161a47 Check password complexity during registration
This adds a password complexity rule during registration to require strong
passwords. This is based on the `zxcvbn` module that we already use for key
backup passphrases.

In addition, this also tweaks validation more generally to allow rules to be
async functions.
2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
008ca3543b Migrate passwords on registration to new validation
In addition to migrating password fields, this also removes the remaining
support for old-style validation in registration now that all checks have been
converted.
2019-04-25 14:29:10 +01:00
J. Ryan Stinnett
9064875312 Migrate email on registration to new validation 2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
1cbb4be6f7 Add support for validating more strictly at submit time
When submitting a form, we want to validate more strictly to check for empty
values that might be required. A separate mode is used since we want to ignore
this issue when visiting a field one by one to enter data.

As an example, we convert the pre-existing logic for the username requirement
using this new support.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
778697abf1 Use input element's value directly
Since we're keeping the input as a ref anyway, let's use that rather than
requiring the value to be passed to `validate`. This allows others to call
`validate` as well.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
5d95c31875 Focus the first invalid field
This adjusts the submission step to focus the first invalid field and redisplay
validation. This also rearranges the older style field error handling on
registration which is slated for removal once we convert all fields to the new
style.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
62a01e7a37 Track per-field validity with new-style validation
This updates the registration form to include the new-style validation state
when deciding whether the entire form is valid overall.

In addition, this tweaks the validation helper to take functions instead of
strings for translated text. This allows the validation helper to be create once
per component instead of once every render, which improves performance.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
37e09b5569 Add check and x icons for validation feedback
Adds icons from the Feather set with the same color as text. Tweaks validation
item spacing to match the design.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
87f13cfe55 Add focus handling to validation
Update the Field component and validation handling to show / hide validation
feedback on focus / blur events.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
338d83ab55 Add validation feedback helper
This adds a general validation feedback mechanism for checking input values. An
initial example is wired up for the username input on registration.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
37ecf2a623 Remove unused ref from Field component
The `fieldInput` ref is no longer used now that we have controlled components
everywhere.
2019-04-25 14:29:09 +01:00
J. Ryan Stinnett
12f7d1715b Remove BottomLeftMenu and supporting bits
The `BottomLeftMenu` component is not used in the new design. This removes the
component and also any images and sub-components that were only used by it.
2019-04-09 17:38:32 +01:00
J. Ryan Stinnett
f2da833ac9 Fix validation to avoid undefined class on fields
The class name handling for validation inadvertently added `undefined` as a
class when validation is not used. This rearranges the logic to avoid the issue.

Fixes https://github.com/vector-im/riot-web/issues/9345
2019-04-09 16:10:36 +01:00
Travis Ralston
a61ab4eb4e
Merge pull request #2862 from matrix-org/travis/stickerpicker/remount
Don't re-init the stickerpicker unless something actually changes
2019-04-04 09:46:38 -06:00
Travis Ralston
9618187d2e
Merge pull request #2855 from YaoiFangirl420/rotate_images
Add option to rotate images
2019-04-04 09:46:06 -06:00
Travis Ralston
6722451207
semicolon 2019-04-04 09:36:45 -06:00
J. Ryan Stinnett
b0f59007f3 Clarify level variable name 2019-04-04 10:30:23 +01:00
YaoiFangirl420
1cbbe5f31f Add i18n and fix method declaration
Add i18n entries for rotating images; fix the way `getName` is defined

Signed-off-by: YaoiFangirl420 <48789208+YaoiFangirl420@users.noreply.github.com>
2019-04-04 02:27:58 -07:00
YaoiFangirl420
9bd1ba60f5 Add option to rotate images
cf. https://github.com/vector-im/riot-web/issues/9257

Add rotate clockwise/counterclockwise buttons to <ImageView>

Signed-off-by: YaoiFangirl420 <48789208+YaoiFangirl420@users.noreply.github.com>
2019-04-04 01:48:41 -07:00
J. Ryan Stinnett
fa88185dee Include the current power level in the selector
This ensures we always include the current power level in the power selector,
even if it's greater than the level you're allowed to set yourself. This ensures
the selector can display the current value correctly when disabled.

Fixes https://github.com/vector-im/riot-web/issues/9340
2019-04-03 11:54:10 +01:00
Travis Ralston
51750cf153 General cleanup of handling for WidgetMessaging instances
When setting, delete the old one. Because delete checks if it exists first, we can safely call this.

The change in FromWidgetPostMessageApi is just something noticed while debugging.
2019-04-01 19:50:05 -06:00
Travis Ralston
fc28f094fe Set title attribute on images in lightbox
Part of https://github.com/vector-im/riot-web/issues/9324
2019-03-29 14:55:56 -06:00
David Baker
1fe830d1c6 Remove noreferrer on widget pop-out
Having the referrer allows widgets to do customisation based on what
riot instance is embedding it. It gets a referrer when we embed it
in the iframe so there's nothing gained by suppressing it here.
2019-03-27 13:27:57 +00:00
Travis Ralston
ddcb7a68bd
Merge pull request #2781 from matrix-org/travis/openid-widget
Widget OpenID reauth implementation
2019-03-27 03:42:39 -06:00
Travis Ralston
a8ae63bb06 Minimize stickerpicker when the title is clicked
Fixes https://github.com/vector-im/riot-web/issues/6437

This also fixes a bug where if the room had apps open and you clicked the sticker picker's title, you'd end up closing the apps and not the picker.
2019-03-23 23:50:06 -06:00
Travis Ralston
3654c895eb Appease the linter 2019-03-23 23:31:19 -06:00
Travis Ralston
2dcb40f1be Track OpenID automatic permissions by (widgetLocation, widgetUrl) 2019-03-23 23:25:31 -06:00
Travis Ralston
d3268801ed Merge branch 'develop' into travis/openid-widget 2019-03-23 22:48:12 -06:00
Travis Ralston
b68960ad26 Reload widget messaging when widgets reload
Fixes a bug for some widgets where they cannot do their startup routine (capabilities negotiation, etc) when someone maximizes the widget. By reloading the widget messaging, we ensure the widget is kept in the loop.
2019-03-15 22:24:27 -06:00
Travis Ralston
f045beafc3 Support whitelisting/blacklisting widgets for OpenID 2019-03-15 21:33:31 -06:00
J. Ryan Stinnett
ec51aee656 Remove refs from RegistrationForm
This aligns the code in `RegistrationForm` with other users of the `Field`
component. (In https://github.com/matrix-org/matrix-react-sdk/pull/2780, I had
thought that this code would be okay to leave alone, but I had missed the usage
of the `Field` value getter.)

Fixes https://github.com/vector-im/riot-web/issues/9172
2019-03-14 14:29:04 +00:00
J. Ryan Stinnett
c70925ab0d Restore Field value getter for RegistrationForm
When working on the `Field` validation support, I thought `RegistrationForm`'s
refs would be okay to leave as is, but I missed that they also depended on the
value getter.

For the moment, it's quicker to temporarily revive the value getter to get
registration working.

Fixes https://github.com/vector-im/riot-web/issues/9171
2019-03-14 12:29:00 +00:00
J. Ryan Stinnett
45063cad4a
Merge pull request #2780 from jryans/auth-validation
Initial portions of support for Field validation
2019-03-14 10:19:21 +00:00
Jason Robinson
02ff1763a2 Ensure scalar_token is valid before opening integrations manager
Since Scalar (and other integration managers) are loaded as apps into
an iframe, a valid `scalar_token` must exist when loading the app.

It is possible that a scalar_token becomes invalid between the time
when the integration manager button was rendered and the user clicking
the link. Here we make a call to integration manager `/account`
before trying to render the integration manager, which ensures we
have a valid token for the integration manager to work with.

Moving the scalar token revalidation to the cases where it is actually
needed could make it possible to decrease the amount of Scalar /account
calls we do when switching rooms, which is currently 3.

Signed-off-by: Jason Robinson <jasonr@matrix.org>
2019-03-13 11:47:00 +02:00
J. Ryan Stinnett
69a066657b Remove bits of Field that supported uncontrolled
Field is no longer used as an uncontrolled component, so we can remove some
supporting code that we no longer need.
2019-03-12 16:51:19 +00:00
J. Ryan Stinnett
d4dbba3938 Convert uncontrolled Field usages to controlled
As part of adding validation to Field, the logic is simpler to follow if we can
assume that all usages of Field use it as a controlled component, instead of
supporting both controlled and uncontrolled.

This converts the uncontrolled usages to controlled.
2019-03-12 16:17:21 +00:00
J. Ryan Stinnett
5a648ecfe4 Ensure we always set some value in Field
Always set some value on the Field's input so that it doesn't flip flop between
controlled and uncontrolled.
2019-03-12 14:02:54 +00:00
J. Ryan Stinnett
ea050683bd Use the right prop type for functions 2019-03-12 14:02:54 +00:00
J. Ryan Stinnett
57ce4d6e7d Call the parent component's onChange if it exists 2019-03-12 14:02:54 +00:00
J. Ryan Stinnett
7241418eba Appease the linter
This checks `onValidate` in `render` to make the linter happy.
2019-03-12 14:02:54 +00:00
J. Ryan Stinnett
edb7f39ec9 Validity class currently unused on tooltip 2019-03-12 14:02:54 +00:00
Matthew Hodgson
40f16fa310 adds validation for fields.
* renames RoomTooltip to be a generic Tooltip (which it is)
 * hooks it into Field to show validation results
 * adds onValidate to Field to let Field instances call an arbitrary validation function

Rebased from @ara4n's https://github.com/matrix-org/matrix-react-sdk/pull/2550
by @jryans. Subsequent commits revise and adapt this work.
2019-03-12 14:02:54 +00:00
Bruno Windels
4e382b1dd9 rename onWidgetLoad to onHeightChanged
as it's easy to confuse it with room widgets, but has nothing to do with it.
2019-03-07 17:02:19 +01:00
J. Ryan Stinnett
8bf5e1d19f
Merge pull request #2749 from jryans/auth-field
Use Field component in auth flows
2019-03-06 11:18:24 +00:00
J. Ryan Stinnett
35ee9c9ac7 One line for prefix container 2019-03-06 10:58:54 +00:00
J. Ryan Stinnett
26b2aa174b Add prefix support to Fields
This allows Fields to have an optional prefix component which is placed inside
the border of the Field and to the left of the input. Since this label animation
would be complex to get right for this case, it is instead fixed to the top left
if there is a prefix component.

This canonical example of this today would be a phone number field which
includes a country dropdown.
2019-03-05 15:25:43 +00:00
Bruno Windels
96196d8c3d
Merge pull request #2746 from matrix-org/bwindels/flairnolayout
Prevent flair pushing timeline downwards
2019-03-05 15:34:09 +01:00
Bruno Windels
624572daa9 show flair container when no profiles loaded to ensure same height 2019-03-05 14:50:39 +01:00
J. Ryan Stinnett
b6351f2607
Merge pull request #2740 from jryans/reorg-field-props
Reorganise props handling in Field
2019-03-05 11:30:06 +00:00
J. Ryan Stinnett
d4a148d56c Use oneOf to check the input element 2019-03-05 11:18:58 +00:00
Travis Ralston
363964e423 Don't loop forever if you demote yourself via Enter on a PowerSelector
The included comment explains what happens and why this is bad.

Fixes https://github.com/vector-im/riot-web/issues/9039
2019-03-04 13:08:54 -07:00
J. Ryan Stinnett
7c672e608d Reorganise props handling in Field
Several small tweaks to the props handling:

* Use destructuring instead of `delete`
* Emphasize the `element` as a primary prop
* Document `textarea` as supported
2019-03-04 17:25:19 +00:00
Michael Telatynski
6b0b5e4aa3
Merge pull request #2729 from matrix-org/t3chguy/missing_permalinkCreator
Add missing permalinkCreator prop
2019-03-04 11:15:53 +00:00
Michael Telatynski
6b07195b63 Add missing permalinkCreator prop
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-03-01 09:36:36 +00:00
Travis Ralston
a41df7ab68 Convert PowerSelector to use mxField instead 2019-02-28 19:00:57 -07:00
J. Ryan Stinnett
4b340450b9 Rename Feather icon directory to feather-customised
These icons are based on Feather as the original source, but they have various
tweaks applied, such as stroke width, color, etc. Hopefully the tweaked name
makes this more obvious in the future.
2019-02-27 10:42:10 +00:00
Bruno Windels
fb672ffb28 change handling of event permalinks in replies 2019-02-25 18:43:08 +01:00
Travis Ralston
9795161f40 Misc linter cleanup 2019-02-21 17:53:29 -07:00
Travis Ralston
1e6594ceba Disable removal of items if the user doesn't have permission 2019-02-21 17:15:25 -07:00
Travis Ralston
5d2f17c49a Make adding aliases direct manipulation 2019-02-21 15:22:08 -07:00
Travis Ralston
2903a0e712 Rework EditableItemList to support mxField
Also improves upon the general UX to be a bit friendlier for direct manipulation things.
2019-02-21 15:22:08 -07:00
Bruno Windels
107eb974d4 always rerender
as not all state that goes into rendering comes from state or props,
we shouldn't be blocking rendering at all

This might rerender a few times more, but it shouldn't be worse
than what was there before the redesigned roomlist.
2019-02-14 13:30:03 +01:00
Bruno Windels
a1a82e48d9 update range when items size changes 2019-02-13 20:21:17 +01:00
Bruno Windels
e51f279f36 dont assume there items is an array 2019-02-13 18:49:09 +01:00
Bruno Windels
60d0ed4c01 make LazyRenderList stateful for better performance
it only rerenders when visible range it would render based on the
props gets OVERFLOW_MARGIN(5) items from the current renderRange
2019-02-13 18:33:57 +01:00
Bruno Windels
9c371111b7 Merge branch 'develop' into bwindels/lazyroomtilerendering 2019-02-13 17:13:23 +01:00
Bruno Windels
0de2161a0d create LazyRenderList component to trim list to visible part 2019-02-13 14:50:43 +01:00
J. Ryan Stinnett
8652a094f3 Allow theming room header buttons 2019-02-13 10:47:04 +00:00
Bruno Windels
f189ff54a8 hide delete & cancel button on stickers are they weren't visible before 2019-02-12 17:01:05 +01:00
David Baker
2cd25e0077
Merge pull request #2596 from matrix-org/dbkr/emoji_sas
Change SAS to decimal / emoji
2019-02-08 16:46:43 +00:00
Travis Ralston
78ea531a87
Merge pull request #2590 from matrix-org/travis/settings/fix-directory-publish
Ensure toggle switches listen to property changes
2019-02-08 08:00:47 -07:00
David Baker
ae16cc36aa Change SAS to decimal / emoji
Requires https://github.com/matrix-org/matrix-js-sdk/pull/837
2019-02-08 14:57:36 +00:00
Travis Ralston
89a8422320 Ensure toggle switches listen to property changes
They do local echo on changes to avoid jumping back and forth while requests are ongoing, however some areas modify the checked state after the toggle has mounted.

Fixes https://github.com/vector-im/riot-web/issues/8432
2019-02-07 11:54:13 -07:00
David Baker
3a924d05b5 Remove click-to-verify from SAS
The click-each-pair to verify was hard to discover, so remove it
2019-02-07 17:01:55 +00:00
Bruno Windels
87ddb8a453
Merge pull request #2575 from matrix-org/bwindels/customtags
Bring back custom tags, also badges on communities
2019-02-07 11:37:17 +00:00
Bruno Windels
547c8cb206 render badge on community 2019-02-06 14:31:43 +00:00
Travis Ralston
eac50aa800 Remove old user and room settings
This takes out the old user and room settings, replacing the paths with the new dialog editions. The labs setting has been removed in order to support this change.

In addition to removing the old components outright, some older components which were only used by the settings pages have been removed. The exception is the ColorSettings component as it has a high chance of sticking around in the future.

Styles that were shared by the settings components have been broken out to dedicated sections, making it easier to remove the old styles entirely.

Some stability testing of the app has been performed to ensure the app still works, however given the scope of this change there is a possibility of some broken functionality.
2019-02-04 13:40:21 -07:00
Bruno Windels
6d2e582083 fix lint 2019-02-02 07:46:52 +01:00
Bruno Windels
7ccc694eea minimal theming on app permission in widget 2019-02-01 23:24:56 +01:00
Bruno Windels
e2ce12f5c1 wip 2019-02-01 23:15:14 +01:00
J. Ryan Stinnett
d6f55a508c Use custom appearance and arrow for select fields 2019-01-30 16:40:53 -06:00
Bruno Windels
85b998d851 fix dropdown style when input is shown 2019-01-30 11:42:50 +01:00
Bruno Windels
6aca7e4515
Merge pull request #2522 from matrix-org/bwindels/memberpanel-tiny-makeover
Redesign: small member info panel makeover
2019-01-30 10:01:33 +00:00
Travis Ralston
a2f516c461 Implement the Security & Privacy tab of new room settings 2019-01-29 14:31:07 -07:00
Bruno Windels
7d6f551841 small makeover of member info panel
this removes the style sharing between the verify buttons in the memberinfo panel and
and the encrypted event dialog because the diverge too much now.
2019-01-29 21:14:16 +01:00
Bruno Windels
855dbd7d2b Merge branch 'experimental' into bwindels/roomdirectory-makeover 2019-01-29 18:33:03 +01:00
Bruno Windels
9f1b4ac4cc room directory makeover 2019-01-29 15:34:58 +01:00
Travis Ralston
87e6652b2a Flair settings for rooms 2019-01-28 13:54:56 -07:00
David Baker
b4f02844a8 Merge remote-tracking branch 'origin/experimental' into dbkr/sas 2019-01-28 09:36:39 +00:00
J. Ryan Stinnett
d1b78e5b08 Fix unmount TypeError in DeviceVerifyButtons 2019-01-25 17:54:11 -06:00
Travis Ralston
d819095a76 Default a Field's placeholder to the label
Fixes https://github.com/vector-im/riot-web/issues/8250

This keeps all fields in line with the design without them having to defining it twice. The option is kept in the first place as some fields might want to override the placeholder to be longer than the label or something.
2019-01-24 19:36:23 -07:00
Travis Ralston
06a9ab3a70 Styling to match the other tabs a bit closer
Introduces a new component to reduce code duplication
2019-01-24 10:12:25 -07:00
Travis Ralston
6f947ab6d9 Appease the linter 2019-01-23 16:09:58 -07:00
Travis Ralston
3f897468a6 Add a ToggleSwitch and use it for SettingsFlag
Also bring in the compact timeline option.

Without minor CSS changes, the old user settings are completely unusable with this change. As such, minimal effort has been put in to have it be useful. Similarly, the changes drop the use of radio groups and the old theme selector was the only one that used it. See the comments for more details on how/why this was mitigated the way it was.
2019-01-23 15:50:41 -07:00
David Baker
6a90625d36 Merge remote-tracking branch 'origin/experimental' into dbkr/sas 2019-01-23 17:32:18 +00:00
Travis Ralston
875c0f94d3 Include a ref so that get/set value works again 2019-01-23 09:29:44 -07:00
Travis Ralston
aa7afe819f Bring over email address management 2019-01-23 09:28:53 -07:00
Travis Ralston
19de6694ca Bring in the change password section
This also changes the layout slightly in the user settings, but nothing detrimental.
2019-01-23 09:28:53 -07:00
Travis Ralston
94b1d739fb
Merge pull request #2476 from matrix-org/travis/modal-tab-settings
Basic structure for tabbed user settings
2019-01-23 07:52:44 -07:00
Travis Ralston
2b3c8c4450 Correctly form a select/input element 2019-01-22 20:03:59 -07:00
Travis Ralston
f0e8182ff3 Support selects on Field
Luckily, the styling is copy/paste capable.
2019-01-22 19:25:09 -07:00
Travis Ralston
a488304410 Appease the linter
Appease the linter round 2

Appease the linter round 3

Appease the linter round 4

Appease the linter round 5
2019-01-21 18:41:49 -07:00
Travis Ralston
15a56fa90b Improve the profile section a bit and add a highlight to the temp tab 2019-01-21 17:27:43 -07:00
Travis Ralston
36ffbef010
Tweak comment about field ID
Co-Authored-By: jryans <jryans@gmail.com>
2019-01-19 22:29:57 -06:00
J. Ryan Stinnett
efd5405267 Add a form field component for the redesign
The label moves into the border on focus and after being filled. A valid color
is applied to the label and input border. Other states like invalid can be added
later as needed.

Adapted from @ara4n's experiment into a React component with a CSS only
approach.
2019-01-19 22:13:53 -06:00
David Baker
630a6a479b Lint 2019-01-18 18:43:40 +00:00
David Baker
ec2d51cbbb SAS verification screen matching design 2019-01-18 16:56:49 +00:00
J. Ryan Stinnett
20e296b20e Convert image URLs in React to require calls
This allows Webpack to insert the proper image URL after builds steps like
adding a hash and so on. The path you supply to `require` is relative to the JS
source file, just like any other would be.
2019-01-17 22:06:49 -06:00
J. Ryan Stinnett
bf87547f88 Remove unexpected underline from pills
Fixes vector-im/riot-web#8031.
2019-01-07 09:56:40 -06:00
Travis Ralston
8017f0a4a1 Merge remote-tracking branch 'origin/experimental' into travis/develop-for-real 2019-01-03 16:00:23 -07:00
Travis Ralston
6447a60e1f Revert "Merge pull request #2336 from matrix-org/travis/notif-button"
This reverts commit 96300b45b7.
2019-01-03 15:44:07 -07:00
David Baker
f928be6f59 Revert "Merge pull request #2395 from matrix-org/dbkr/merge_develop_experimental"
This reverts commit ad47144355.
2019-01-03 15:37:03 -07:00
David Baker
7d161de35b Partial merge of develop to experimental
Does not include #2336 as the file has been moved out from underneath it:
will do this separately
2019-01-03 15:02:58 +00:00
Bruno Windels
b826b0d998 Add redesign feedback dialog + button in tag panel 2018-12-19 12:27:05 +01:00
David Baker
1ca91370f3
Merge pull request #2372 from matrix-org/dbkr/electron_sandbox
React-sdk changes to support sandboxed electron
2018-12-19 09:48:05 +00:00
David Baker
3a8b9ab850 unused import 2018-12-18 17:57:23 +00:00
David Baker
37b3644fd9 React-sdk changes to support sandboxed electron 2018-12-18 17:40:30 +00:00
Bruno Windels
1d43712a8f Merge branch 'experimental' into nadonomy/icons 2018-12-18 18:22:24 +01:00
Nad Chishtie
074c96cd3e First pass of normalising icons. 2018-12-18 16:48:20 +00:00
Bruno Windels
279521cab4 add id to props for completeness 2018-12-18 14:31:38 +01:00
Willem Mulder
d304c35b38 Allow widgets to autoplay media
This is useful for e.g. webcam streams in widgets.

Signed-off-by: Willem Mulder <willemmaster@hotmail.com>
2018-12-18 00:43:37 +00:00
Bruno Windels
e4d2b6f2b7 fix resize handles being too thick on edge (hopefully) 2018-12-14 17:06:00 +01:00
Bruno Windels
fe76287035 style communities button, make it visible again 2018-12-10 15:43:48 +01:00
Bruno Windels
10a989a003 make icon optional in action button
as we'll draw the icon with css
2018-12-10 15:33:35 +01:00
Travis Ralston
95d15b7863 Fix tinting of notification icon and use a more reliable notification source
The js-sdk's placement of the notification change was unreliable and could cause stuck notifications. The new location (piggybacking the Notifier) is a lot more reliable.

The tinting has been changed fairly invasively in order to support the changing of the `fill` attribute. What was happening before was the `fill` property would happily get set to the forced color value, but when it came time to reset it it wouldn't be part of the colors array and fail the check, therefore never being changed back. By using a second field we can ensure we are checking the not-forced value where possible, falling back to the potentially forced value if needed. 

In addition to fixing which color the Tinter was checking against, something noticed during development is that `this.colors` might not always be a set of hex color codes. This is problematic when the attribute we're looking to replace is a rgb color code but we're only looking at `keyHex` - the value won't be reset. It appears as though this happens when people use custom tinting in places as `this.colors` often gets set to the rgb values throughout the file. To fix it, we just check against `keyHex` and `keyRgb`.
2018-12-06 22:26:51 -07:00
Travis Ralston
173669b375 Show the number of unread notifications above the bell on the right
Fixes https://github.com/vector-im/riot-web/issues/3383

This achieves the result by counting up the number of highlights across all rooms and setting that as the badge above the icon. If there are no highlights, nothing is displayed. The red highlight on the bell is done by abusing how the Tinter works: because it has access to the properties of the SVG that we'd need to override it, we give it a collection of colors it should use instead of the theme/tint it is trying to apply. This results in the Tinter using our warning color instead of whatever it was going to apply.

The RightPanel now listens for events to update the count too, otherwise when the user receives a ping they'd have to switch rooms to see the change.
2018-12-06 16:18:02 -07:00
Bruno Windels
f7a37be6dd support associating an id with a resize item/handle 2018-11-26 16:46:27 +01:00
Bruno Windels
67e0030ccd Merge branch 'develop' into experimental 2018-11-26 13:10:29 +01:00
Bruno Windels
ba83166661 Merge branch 'develop' into experimental 2018-10-31 14:54:22 +01:00
David Baker
8ac62f8c12 Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-29 16:20:45 +00:00
Aaron Raimist
5f3b03c85a
Fix a few no-useless-escape lint errors
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-26 23:00:54 -05:00
Aaron Raimist
49ce4ef117
eslint --fix src/
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-26 22:50:38 -05:00
Bruno Windels
2c039483c6 Merge branch 'develop' into experimental 2018-10-26 15:33:39 +02:00
Travis Ralston
aaeb6e4978 Use about:blank instead 2018-10-25 15:59:42 -06:00
Travis Ralston
749441b4d3 Merge branch 'develop' into travis/redirect-widgets 2018-10-25 15:57:26 -06:00
David Baker
b59b8b7fca Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-25 17:42:46 +01:00
Travis Ralston
7ef08314b8 Redirect widgets to another location before deleting them
This is so that shutdown hooks in the widget can correctly fire, such as Jitsi's hook to abandon its hold on the webcam.

Fixes https://github.com/vector-im/riot-web/issues/7351
2018-10-19 16:23:19 -06:00
Travis Ralston
c75beb0196 Revert "Redirect widgets to another location before deleting them"
This reverts commit 275d88dd4f.
2018-10-19 16:22:48 -06:00
Travis Ralston
275d88dd4f Redirect widgets to another location before deleting them
This is so that shutdown hooks in the widget can correctly fire, such as Jitsi's hook to abandon its hold on the webcam.

Fixes https://github.com/vector-im/riot-web/issues/7351
2018-10-19 16:22:20 -06:00
Travis Ralston
9582c1e65a Move all dialog buttons to the right and fix their order
Fixes https://github.com/vector-im/riot-web/issues/5689

Some dialogs had their own CSS that prevented the buttons from being placed in the right spot. This has been fixed by using a generic standard for the buttons. The only strange dialog that needed more CSS was the devtools dialog due to the header.

Not all dialogs have been checked - I spot-checked about half of them and verified the CSS manually on an established account. It's hard to get at all the dialogs without convoluted testing.
2018-10-19 15:33:23 -06:00
Bruno Windels
8d3347bcfb fix lint 2018-10-17 13:36:15 +02:00
Bruno Windels
01471abdc5 Merge branch 'bwindels/redesign' into bwindels/resizehandles 2018-10-16 11:57:59 +02:00
Bruno Windels
6878ce3c6a Merge branch 'develop' into bwindels/redesign 2018-10-16 11:57:44 +02:00
David Baker
41bc42e7d7
Merge pull request #2194 from pvagner/more_accessible_buttons
More accessible buttons - take 2
2018-10-09 11:04:50 +01:00
David Baker
387128ed1e Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-05 14:01:50 +01:00
David Baker
8ceca3abe9
Update Pill.js
Commas are not semicolons
2018-10-04 10:34:34 +01:00
Will Hunt
17915b5082
Merge branch 'develop' into hs/purge-irc-hack 2018-10-03 19:39:14 +01:00
Will Hunt
fe788486b7 Drop (IRC) suffix hacks 2018-10-03 19:34:06 +01:00
Peter Vágner
2b394c1869
Address review comments and fix lint errors 2018-10-02 20:32:54 +02:00
Peter Vágner
ded35e43a0
A11y: repurpose more divs into AccessibleButtons.
With this more of the
controls that look like buttons can be operated via the keyboard and
navigated to by screen reader users. This includes editor buttons such
as File upload, Audio / Video call, Right pannel hide button, Jump to
the bottom timeline button, and some more buttons found in the user
settings.
Also I have added alt texts to some images that in turn label buttons
which these happen to be packed in and removed some untranslated alt
texts from decorative non-actionable images that might add more
verbosity when talking about screen reader user experience.
2018-10-02 13:55:24 +02:00
Bruno Windels
928b6d47c8 add resize handles between 3 main app columns 2018-09-24 16:07:42 +01:00
Bruno Windels
91ec96c8d3 Merge branch 'develop' into bwindels/redesign 2018-09-21 12:44:44 +02:00
David Baker
f507aac3d5 Show if recovery key is valid 2018-09-17 17:05:29 +01:00
David Baker
94c7ae2bf5
Merge pull request #2098 from matrix-org/dbkr/destroy_widget
Destroy non-persistent widgets when switching room
2018-08-17 09:53:41 +01:00
David Baker
e3643bd74c Lint 2018-08-17 09:42:23 +01:00
Bruno Windels
cead4096d8
Merge pull request #2118 from matrix-org/bwindels/feature_lazyloading
Lazy loading of room members
2018-08-16 18:14:55 +02:00
Bruno Windels
f1643f77ac fix lint 2018-08-02 19:57:20 +02:00
Bruno Windels
e1843601be support directional content in pill member fake 2018-08-02 17:09:18 +02:00
David Baker
7875d37c8e Destroy non-persistent widgets when switching room 2018-08-01 15:01:11 +01:00
Matthew Hodgson
9783b6100d Merge branch 'develop' into matthew/dharma 2018-07-29 17:03:23 +01:00
David Baker
1fe0f04986 Fix persistend element location not updating
As hopefully all explained in comment
2018-07-27 14:33:05 +01:00
David Baker
7044410a13 Move destroyPersistentWidget to store 2018-07-24 16:50:34 +01:00
David Baker
ec4c7ffb71 Make ActiveWidgetStore clear persistent widgets
ActiveWidgetStore is now reponsible for removing the current
persistent widget from the store if it's been removed from whatever
room it was in. As per comment, this leaves us with the store updating
itself in this case but in all other cases, views call setters on the
store to update its state. We should make it so the store keeps itself
up to date and views aren't responsible for keeping the store up to date.

The store now emits events so it can notify PersistentApp when it changes.

Fixes https://github.com/vector-im/riot-web/issues/7076
2018-07-24 16:21:43 +01:00
David Baker
6804647dda Destroy widget when its permission is revoked 2018-07-23 17:11:53 +01:00
David Baker
4f8ece53b2 Fix CSS naming 2018-07-23 15:58:07 +01:00
David Baker
5adcd673ab Fix persisent apps being the wrong size 2018-07-23 15:08:17 +01:00
David Baker
00f78822c5 Fix widgets resetting when going to the top-left
Remove the hash from the parentUrl because this change when we
change rooms.
2018-07-23 13:50:16 +01:00
Bruno Windels
6f278ceab0
Merge pull request #2071 from matrix-org/dbkr/persistedelement_border
Fix border around persisted widgets
2018-07-20 12:23:02 +01:00
David Baker
f868cd6699 Fix border around persisted widgets
The PersistedElement had zero height so the border ended up in the
wrong place. Add a wrapper to fix the height back.

Fixes https://github.com/vector-im/riot-web/issues/7030
Fixes https://github.com/vector-im/riot-web/issues/7029
2018-07-18 11:52:57 +01:00
David Baker
7aab6fa6f1 Merge remote-tracking branch 'origin/develop' into dbkr/widget_echo 2018-07-18 09:35:57 +01:00
David Baker
a79caed0c9 Merge remote-tracking branch 'origin/develop' into dbkr/tiny_jitsi_follows_you_between_rooms 2018-07-16 17:21:51 +01:00
David Baker
d16ac4d80c
Merge pull request #1890 from matrix-org/matthew/slate
Replace Draft with Slate
2018-07-16 14:16:25 +01:00
David Baker
4c6419a3c5 Merge remote-tracking branch 'origin/develop' into dbkr/widget_echo 2018-07-16 13:24:13 +01:00
David Baker
ff96537048 lint 2018-07-16 11:49:53 +01:00
David Baker
e56feea9ec Put always-on-screen widgets in top left
always-on-screen widgets now appear in the top-left where the
call preview normally is if you're not in the room that they're in.

Fixes https://github.com/vector-im/riot-web/issues/7007
Based off https://github.com/matrix-org/matrix-react-sdk/pull/2053
2018-07-12 18:43:49 +01:00
David Baker
8f10ee01c6 Implement always-on-screen capability for widgets
As per https://github.com/matrix-org/matrix-doc/issues/1354

This is whitelisted to only jitsi widgets for now as per comment,
mostly because any widget that we may make always-on-screen we need
to preemptively put in a PersistedElement container, which is
unnecessary for any other widget.

Apologies that this does a bunch of refactoring which could have
been split out separately: I only discovered what needed to be
refactored in the process of doing this.

Fixes https://github.com/vector-im/riot-web/issues/6984
2018-07-11 18:07:32 +01:00
Matthew Hodgson
efdc5430d7 merge develop 2018-07-09 17:50:07 +01:00
David Baker
ad35fbf208 Pull out z-index to the sticker picker
As it's not a thing that's necessary for other PersistedElements,
only the sticker picker because it has to sit above the ContextMenu
it sits in.
2018-07-03 18:25:33 +01:00
David Baker
74f2d0a360 Use inline class field for PropTypes 2018-07-03 14:54:43 +01:00
David Baker
3f88721bc1 Give PersistedElement a key
So there can be more than one on a page
2018-07-03 14:43:27 +01:00
David Baker
c665ab8a22 Add error dialog if widget remove fails
Also up the timeout because matrix.org is that slow
2018-07-03 11:55:41 +01:00
Luke Barnard
016e9176f6 Fix room topics/names reseting when UserSetting re-renders
This reverts a fix to EditableText introduced in
    https://github.com/matrix-org/matrix-react-sdk/pull/1445
which introduced a bug that causes room name and topic to
reset when UserSettings is rerendered because
    `initialValue != this.value`

This also fixes the same bug originally fixed by #1445:
 >fix entering the same thing twice (which had the bug of not
 >emptying the "new" field)

which, in other words meant that clicking "+" when adding a room
alias would not reset the contents of the bottom-most alias in the
list.

The fix is to increment the `key` of the element, causing a new
instance to be mounted instead of passing new props to the existing
one.
2018-06-28 18:11:52 +01:00
David Baker
c780cd05a8 Change argument order of setRoomWidget
So when deleting a widget we can just omit the ones we don't need
2018-06-26 16:33:28 +01:00
David Baker
a88297d7a6 More code reuse 2018-06-26 16:27:17 +01:00
David Baker
6cf11a15e6 Move WidgetUtils to utils dir 2018-06-26 11:59:16 +01:00
Michael Telatynski
32ab997230
properly style Group Pill
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-22 14:38:06 +01:00
Michael Telatynski
d92d95c37d
don't fall back to getGroups as it gets it no additional data
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-22 12:11:16 +01:00
Michael Telatynski
561b9699fc
Merge branch 'develop' into t3chguy/community_autocomplete 2018-06-22 12:00:34 +01:00
Luke Barnard
8b257f2f50
Merge pull request #1989 from matrix-org/t3chguy/right_click_tagpanel_contextmenu
trigger TagTile context menu on right click
2018-06-22 10:23:58 +01:00
Michael Telatynski
a0207fb7fd
Merge pull request #1982 from matrix-org/t3chguy/nvl/fix_set_password-email_flow
fix set password & email flow possible to get stuck and onBlur murdering your email
2018-06-21 11:42:53 +01:00
David Baker
e67dae704a Take replies out of labs! 2018-06-20 09:57:11 +01:00
Michael Telatynski
c1e608f1a8
show permalinks to communities as Pills
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-19 11:53:17 +01:00
Michael Telatynski
29ea4025d4
trigger TagTile context menu on right click
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-18 22:13:20 +01:00
Michael Telatynski
f2e4e515c1
delint EditableText
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-18 18:21:16 +01:00
David Baker
276c7a9c4d Fix blank sticker picker
Let the battle of z-indexes commence

https://github.com/matrix-org/matrix-react-sdk/pull/1948/files#diff-8bc8827809a72c7548846c443d19f00aR29
2018-06-18 15:24:34 +01:00
David Baker
94125fb566 Fix widgets re-appearing after being deleted
Widgets would sometimes briefly re-appear after having been deleted.
This was because of the following race:
 * User presses delete, send POST req, we set `deleting`. Widget hides.
 * POST request completes, we unset `deleting` so widget unhides.
 * State event comes down sync so widget hides again.

This fixes this by introducing `waitForRoomWidget` and using it to
wait until the state event comes down the sync until clearing the
`deleting` flag.

Since we now have `waitForRoomWidget`, this also uses it when adding
a widget so the 'widget saved' appears at the same time the widget
does.
2018-06-13 15:50:19 +01:00
Michael Telatynski
ffec32c7d9
Merge pull request #1943 from akihikodaki/react
Import react as React in src/components/views/elements/DNDTagTile.js
2018-06-06 10:08:52 +01:00
Akihiko Odaki
bf0d03bce3 Import react as React in src/components/views/elements/DNDTagTile.js
Signed-off-by: Akihiko Odaki <nekomanma@pixiv.co.jp>
2018-06-06 17:59:50 +09:00
Travis Ralston
254e8c358a Remove unused imports
Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-28 11:38:09 -06:00
Travis Ralston
98613748b6 Move Scalar Widget URL check to WidgetUtils
Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-27 11:12:55 -06:00
Travis Ralston
23162c8625 Support third party integration managers in AppPermission
Alternative integration managers may wish to also wrap widgets to supply a better user experience. With the previous code, it was not possible to use the integrations_widgets_urls configuration option (described in AppTile). AppPermission should use the same logic to determine if a widget is being wrapped, so it can display a helpful URL for the user (instead of the wrapper URL).

Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-27 10:56:50 -06:00
Matthew Hodgson
3bf28a08ec experiments in dharma 2018-05-25 03:17:29 +01:00
Richard Lewis
b2c26e6984
Merge pull request #1920 from matrix-org/rxl881/refreshWidget
Add a "reload widget" button.
2018-05-24 18:11:22 +01:00
Richard Lewis
9753ee8d82 Better check of jitsi widget message origin. 2018-05-24 16:14:18 +01:00
Richard Lewis
a13d58f6c2 More thorough check of IM URL validity. 2018-05-24 14:58:59 +01:00
Luke Barnard
ef686a966d Add cookie warning to widget warning (AppPermission) 2018-05-23 10:46:32 +01:00
Richard Lewis
6df3371c6c Add a "reload widget" button. 2018-05-22 19:14:54 +01:00
Luke Barnard
31dcd85c08 Add customisable cancel button to QuestionDialog 2018-05-22 15:45:58 +01:00
Matthew Hodgson
4972a234c4 Merge branch 'develop' into matthew/slate 2018-05-19 12:58:43 +01:00
Matthew Hodgson
b60ccad29b Merge branch 'develop' into matthew/slate 2018-05-15 01:00:07 +01:00
Luke Barnard
e596924074 Merge branch 'develop' into release-v0.12.4 2018-05-14 17:43:40 +01:00
Luke Barnard
ff0254d346 Fix ContextualMenu imports for TagTile and code block copy button 2018-05-14 17:36:57 +01:00
Luke Barnard
49a3770e92 Merge branch 'release-v0.12.4' into develop 2018-05-14 14:31:18 +01:00
Luke Barnard
cf8077e605 Set loading: false when iFrame finishes loading 2018-05-14 11:42:38 +01:00
Luke Barnard
6345e474f5 Remove unused conditional 2018-05-14 11:38:17 +01:00
Matthew Hodgson
c1000a7cd5 emojioneify the composer
and also fix up the selectedness CSS for pills and emoji
2018-05-14 03:02:12 +01:00
Travis Ralston
9e11720191 Add setting to enable widget screenshots (if widgets declare support)
Fixes the remainder of https://github.com/vector-im/riot-web/issues/6708

Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-12 14:30:59 -06:00
Matthew Hodgson
f8fd90c559
Merge pull request #1889 from matrix-org/t3chguy/replies-html-tag
T3chguy/replies html tag
2018-05-12 20:22:54 +01:00
Michael Telatynski
dbbcabfed8
switch from asymmetrical fallback form to a cleaner one mx-reply
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-12 15:58:25 +01:00
Luke Barnard
9c5c5e282b Send visibility only when changed, and messaging is available 2018-05-11 18:20:23 +01:00
Luke Barnard
a419056040 Delinting 2018-05-11 18:20:14 +01:00
Luke Barnard
06919e22d6 When stickerpicker made visible, send visibility over postMessage 2018-05-11 18:20:00 +01:00
Luke Barnard
bd0301c666 Add API to send visibiliy actions to widgets 2018-05-11 18:17:55 +01:00
Luke Barnard
42c59b5923 Make AppTile in Stickerpicker persistent using PersistedElement 2018-05-11 18:17:48 +01:00
Luke Barnard
06898394eb Send visibility only when changed, and messaging is available 2018-05-11 18:06:58 +01:00
Luke Barnard
1f2f3474ed Delinting 2018-05-11 17:28:12 +01:00
Luke Barnard
8b049b2182 When stickerpicker made visible, send visibility over postMessage 2018-05-11 16:51:03 +01:00
Luke Barnard
4b6378a80d Add API to send visibiliy actions to widgets 2018-05-11 16:22:54 +01:00
Luke Barnard
746eeee33c Make AppTile in Stickerpicker persistent using PersistedElement 2018-05-11 15:07:51 +01:00
Luke Barnard
770e2d400e Improve appearance of short-lived app loading spinner
by hiding it for 500ms - thereby only showing it if the loading is
taking a long time.
2018-05-09 17:28:41 +01:00
Luke Barnard
97b9316ec7 Fix issue incorrect positioning with widget loading indicator
by making sure to apply the correct CSS class to the parent
2018-05-09 17:28:18 +01:00
Luke Barnard
0c1846630c Improve appearance of short-lived app loading spinner
by hiding it for 500ms - thereby only showing it if the loading is
taking a long time.
2018-05-09 16:54:01 +01:00
Luke Barnard
bcf003757c
Merge pull request #1884 from matrix-org/luke/fix-glitchy-widget-spinner
Fix issue incorrect positioning with widget loading indicator
2018-05-09 16:52:11 +01:00
Luke Barnard
59cbaf67bb Fix issue incorrect positioning with widget loading indicator
by making sure to apply the correct CSS class to the parent
2018-05-09 15:48:53 +01:00
Richard Lewis
8e1ba6d139 Always allow users to edit their user widgets. 2018-05-08 22:44:49 +01:00
Michael Telatynski
97d344483e
fix thinko when changing from ClientPeg to context in static method (DUH
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-03 14:32:13 +01:00
Michael Telatynski
4892694e77
use more explicit reply fallback closing tag construct to fix 6657
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-03 11:24:10 +01:00
Michael Telatynski
f2102e283c
Merge branches 'develop' and 't3chguy/m.relates_to' of github.com:matrix-org/matrix-react-sdk into t3chguy/m.relates_to 2018-05-02 13:08:38 +01:00
Michael Telatynski
11ae0805b0
re-order ReplyThread methods for readability
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-01 17:42:58 +01:00
Luke Barnard
56ec7713bb Refresh group rooms and members when selecting a tag 2018-05-01 16:54:14 +01:00
Michael Telatynski
bbce6eea5b
update comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-30 23:28:55 +01:00
Michael Telatynski
4021fc049c
re-arrange method order to group statics before instance methods
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-29 00:54:54 +01:00
Michael Telatynski
c00c52e537
added another comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-29 00:53:35 +01:00
Michael Telatynski
407be88c92
add comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-29 00:51:39 +01:00
Michael Telatynski
5bb15b1002
simplify logic
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-04-29 00:48:44 +01:00
David Baker
74651b93ab Merge remote-tracking branch 'origin/dbkr/fix_session_restore_fail_dialog_ux' into dbkr/bug_report_dialog_basedialog 2018-04-27 15:57:15 +01:00