Commit graph

950 commits

Author SHA1 Message Date
Simon Merrick
b365d3b27e Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into new/room-alias-in-permalink 2020-12-07 10:30:50 +13:00
Simon Merrick
5544ee6408 extract alias handling to separate function 2020-12-06 23:29:11 +13:00
Michael Telatynski
3223b00028 Jump to home page when leaving a room
so that you don't get thrown into a room you may be ignoring on purpose
2020-12-03 11:15:55 +00:00
Simon Merrick
cf8c98e076 More explicit reference checking 2020-12-02 12:34:43 +13:00
Simon Merrick
e92ac67152 Use room alias in generated permalink for rooms
Signed-off-by: Simon Merrick <s.m3rrick@gmail.com>
2020-11-28 21:50:51 +13:00
Travis Ralston
5da27aed94 Replace the concept of a Widget Security Key with an OIDC state
The security key naming/practice was misguided, so let's call it what it is (a settings key) and abstract away the complexity to a new store.

Fixes https://github.com/vector-im/element-web/issues/15820 while we're here.
2020-11-25 18:39:11 -07:00
Travis Ralston
55592d365c Merge branch 'develop' into travis/msc-send-widget-events 2020-11-18 15:57:53 -07:00
Travis Ralston
a212dab84c Developer design a permissions dialog 2020-11-17 20:38:59 -07:00
Travis Ralston
91b1c8b817 Fix DM logic to always pick a more reliable DM room
Fixes https://github.com/vector-im/element-web/issues/15605
2020-11-16 15:07:09 -07:00
Travis Ralston
dacc7bc111 Rebrand Riot -> Element in the permalink classes 2020-11-02 21:46:48 -07:00
David Baker
7ec1d5a881 Fix a bunch of silly lint errors
At some point the script to generate .eslintignore.errorfiles had
been run and added all these files to the ignore list, often because
they lacked a space before a brace or something equally mundane.

These are the easiest bunch.
2020-10-30 18:18:17 +00:00
Michael Telatynski
4e12aeca9e Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/room-list-widgets
 Conflicts:
	src/components/views/elements/AppTile.js
2020-10-21 12:48:51 +01:00
Michael Telatynski
568e147053 Merge copyrights
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-21 12:44:16 +01:00
Michael Telatynski
4dd8b8d8c6 fix WidgetUtils setRoomWidget signature
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 21:02:48 +01:00
Michael Telatynski
5ee0262da2 Post-merge tidy up
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 20:56:41 +01:00
Michael Telatynski
bec1d718e0 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/room-list-widgets
 Conflicts:
	src/components/views/elements/AppTile.js
	src/utils/WidgetUtils.ts
2020-10-19 20:50:16 +01:00
Michael Telatynski
1fe2eea43f Pass theme to Jitsi
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 18:47:27 +01:00
Michael Telatynski
744a4abd1c Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/feat/widgets 2020-10-19 13:08:17 +01:00
Michael Telatynski
73489b7c6d AppsDrawer watch ResizeNotifier isResizing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 13:08:11 +01:00
ginnyTheCat
046f498295
Added formula sources 2020-10-11 00:37:00 +02:00
Michael Telatynski
ada6d1aa46 Iterate PR
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-09 08:42:21 +01:00
ginnyTheCat
014671d8ce
Fixed lint issues 2020-10-08 19:55:52 +02:00
ginnyTheCat
e218f6dcab
Changed rainbow algorithm 2020-10-08 17:19:28 +02:00
Travis Ralston
0570deffa2 Fix iterableUnion types 2020-10-01 10:01:13 -06:00
Travis Ralston
f27071ee64 Transition all remaining messaging over (delete the old stuff) 2020-09-30 20:20:31 -06:00
Travis Ralston
bb5184bc50 Remove unused function 2020-09-29 15:32:07 -06:00
Travis Ralston
cd93b2c22a First rough cut of cutting AppTile over to the ClientWidgetApi 2020-09-29 14:14:51 -06:00
Travis Ralston
96fa34eecf Add stop functions 2020-09-26 18:40:26 -06:00
Travis Ralston
634ffb0140 Add structure for widget messaging layer 2020-09-25 09:39:21 -06:00
Michael Telatynski
c65d8be7d8 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-09-24 09:49:30 +01:00
Michael Telatynski
956a3bf69d Implement Left Panel User Widget
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-09-24 09:28:49 +01:00
Michael Telatynski
2e6bad8b07 Convert WidgetUtils to TS and improve typing
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-09-23 11:01:19 +01:00
J. Ryan Stinnett
693dbab54e Add more types and enums 2020-09-22 15:22:39 +01:00
J. Ryan Stinnett
115c7ccd4e Support HS-preferred Secure Backup setup methods
This adds support for the `secure_backup_setup_methods` key, which allows HS
admins to state that Element should simplify down to only one setup method,
rather than offering both.

Fixes https://github.com/vector-im/element-web/issues/15238
2020-09-21 16:10:42 +01:00
Michael Telatynski
229967aa33 Retry joinRoom up to 5 times in the case of a 504 GATEWAY TIMEOUT 2020-09-14 15:16:29 +01:00
Matthew Hodgson
5ecc3f4398 kill formatMinimalBadgeCount entirely 2020-09-10 13:56:46 +01:00
Michael Telatynski
a1f1334250 Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/dpsah/6785.3
 Conflicts:
	src/components/structures/RoomView.tsx
2020-09-09 15:16:19 +01:00
Michael Telatynski
01a8ac25c9 Use null coalescing operator 2020-09-08 17:40:57 +01:00
Michael Telatynski
98b59fb217 Consolidate all the work thus far 2020-09-08 15:43:38 +01:00
Michael Telatynski
2527344294 Create name/title Widget utils 2020-09-08 15:42:31 +01:00
Michael Telatynski
87b72de25f
Merge pull request #5176 from matrix-org/t3chguy/dpsah/6785.4
Fix WatchManager for global room watchers and tidy widget code a little
2020-09-08 15:24:10 +01:00
Michael Telatynski
a80bcaa292
Merge pull request #5174 from matrix-org/t3chguy/fix/15100
Fix permalink local linkification to not strip via servers
2020-09-08 15:23:38 +01:00
Jason Robinson
75518254fb
Merge pull request #5173 from matrix-org/jaywink/jitsi-openidjwt-auth
Support creation of Jitsi widgets with "openidtoken-jwt" auth
2020-09-08 17:16:50 +03:00
Michael Telatynski
1b99c11b11 tidy 2020-09-08 15:09:45 +01:00
Michael Telatynski
48d9c94c88 Extract editWidget into WidgetUtils 2020-09-08 11:12:14 +01:00
Michael Telatynski
906d4defd5 Convert RoomView and RoomContext to TS 2020-09-08 10:52:37 +01:00
Michael Telatynski
d0c716d61c Fix permalink local linkification to not strip via servers 2020-09-08 10:26:37 +01:00
Jason Robinson
4b43e39d2a Code review related changes
* drop room ID from jitsi widget data
* reame queryParts variable
2020-09-08 11:31:40 +03:00
Michael Telatynski
667c129ebc Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/dpsah/6785
 Conflicts:
	src/components/structures/ScrollPanel.js
	src/components/views/rooms/AppsDrawer.js
2020-09-07 14:33:57 +01:00
Jason Robinson
baa6d8a294 Correctly template in Jitsi widget auth if such exists
Also add roomId to the widget data and URL template. It's needed by
the Element Web Jitsi code to produce auth for the Jitsi backend.
2020-09-04 12:42:46 +03:00
Michael Telatynski
cffe902504 Add feature to ResizeNotifier to maintain isResizing state and use it to skip onScroll handling 2020-09-02 12:00:35 +01:00
Michael Telatynski
1fc55b33c1 Stash lodash import optimization 2020-08-28 18:53:43 +01:00
resynth1943
2c20afc047 Fix lodash imports
Signed-off-by: resynth1943 <resynth1943@tutanota.com>
2020-08-26 23:23:18 +01:00
J. Ryan Stinnett
8e0742b9fe
Merge pull request #5130 from matrix-org/jryans/secure-backup-required
Enforce Secure Backup completion when requested by HS
2020-08-24 17:32:58 +01:00
J. Ryan Stinnett
b601a025b5 Use io.element instead of im.vector 2020-08-24 16:33:23 +01:00
J. Ryan Stinnett
2e2f60c20b Use updated waitFor API with well-known 2020-08-24 16:11:35 +01:00
Travis Ralston
42988d373b Remove debugging 2020-08-19 19:42:58 -06:00
Travis Ralston
8fffce8a30 Appease the linter 2020-08-19 19:42:36 -06:00
Travis Ralston
309c32700b Remove unused success state 2020-08-19 19:23:27 -06:00
Travis Ralston
e0b8343088 Run all room leaving behaviour through a single function
Fixes https://github.com/vector-im/element-web/issues/14999
Fixes https://github.com/vector-im/element-web/issues/10380

We were failing to handle errors when `/part`ing a room, though the leave room button was fine. This runs both the button and command through the same function for handling, including the 'view next room' behaviour.
2020-08-19 19:21:40 -06:00
J. Ryan Stinnett
e56a61ec68 Invoke Secure Backup flow inside the app when requested by HS
If the Secure Backup required mode is set the client `.well-known` file, then
this will ensure that everyone already inside the app is required to complete
setup matching that policy.

Fixes https://github.com/vector-im/element-web/issues/14954
2020-08-19 16:23:27 +01:00
J. Ryan Stinnett
1932505d3b Enforce Secure Backup completion when requested by HS
This removes all buttons to escape the Secure Backup setup flow when the
matching `.well-known` setting is set by homeserver.

Part of https://github.com/vector-im/element-web/issues/14954
2020-08-19 16:23:27 +01:00
J. Ryan Stinnett
2b0865e89c Move E2EE well-known access to utils 2020-08-19 16:23:27 +01:00
Bruno Windels
5d98805d77 Merge branch 'develop' into bwindels/make-reply-not-overlay 2020-08-18 13:39:06 +02:00
Michael Telatynski
0da31de5ad
Merge pull request #5086 from matrix-org/t3chguy/notifications12
Create Map comparison utilities and convert Hooks to Typescript
2020-08-05 16:28:52 +01:00
Michael Telatynski
6220f50360 delint 2020-08-05 09:28:02 +01:00
Michael Telatynski
cd29edb442 Write more typescript defs 2020-08-05 09:13:01 +01:00
Michael Telatynski
f5d75bc078 fix comments 2020-08-04 22:03:30 +01:00
Michael Telatynski
93b4ea5be4 Create Maps utility comparison functions 2020-08-04 21:57:37 +01:00
J. Ryan Stinnett
ce226ab534 Replace Riot with Element in docs and comments
This only covers the simple cases of references to issues and repos. More
complex areas, such as deployment scripts, will be handled separately.

Part of https://github.com/vector-im/element-web/issues/14864
2020-08-03 18:33:36 +01:00
Travis Ralston
16ebcf70c9 Clean up documentation of Whenable 2020-07-31 09:41:19 -06:00
Bruno Windels
d24ddc415b Notify the timeline it's height has changed, so it can keep being at the bottom
this way new messages will appear in the timeline without needing to scroll
2020-07-31 14:02:40 +02:00
J. Ryan Stinnett
af49639bd8
Merge pull request #5065 from matrix-org/travis/echo/audit
Add local echo for notifications in the new room list
2020-07-31 12:20:20 +01:00
Travis Ralston
5b15d12865 Ensure list visibility changes get counted as list changes
Fixes https://github.com/vector-im/riot-web/issues/14799

We were checking to see if the tags were visible at render time, but we needed to ensure that they were(n't) included when checking for diffs. This introduces a new kind of object cloning for semantic reasons.

This also fixes the selection indicator being a bit off on custom tags.
2020-07-30 14:18:54 -06:00
Travis Ralston
e953bfbf88 Replace flawed objectHasValueChange usage with objectHasDiff
Fixes https://github.com/vector-im/riot-web/issues/14782

We need to check if the keys changed, not just the values.
2020-07-30 14:08:18 -06:00
Travis Ralston
8f1af4be14 Add local echo capabilities for rooms
The structure here might need some documentation and work, but overall the idea is that all calls pass through a CachedEcho instance, which are self-updating.
2020-07-29 16:53:26 -06:00
Travis Ralston
1573c88b47
Update src/utils/arrays.ts
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-28 06:37:19 -06:00
Travis Ralston
b91026fa89 Ensure CustomRoomTagStore doesn't fire useless updates
This could in theory cause double rendering of the room list under some conditions.
2020-07-27 17:18:01 -06:00
Travis Ralston
5f034ee4ed Ensure arrayHasDiff returns a boolean
This is just maintenance noticed while debugging.
2020-07-27 17:17:27 -06:00
Travis Ralston
4d7980eb07 Ensure references to the room list store are broken for diffing
See commit diff for details.
2020-07-24 10:38:04 -06:00
Travis Ralston
9969b01c5f Only render sublists when they change significantly
We can ignore off-screen updates, so do that. See diff for more details on what we're doing.
2020-07-23 22:13:32 -06:00
Travis Ralston
7b97c3032b Make the sublists aware of their own list changes
This cuts the render time in half (from ~448ms to ~200ms on my account) per received event, as we're no longer re-mounting the entire room list and instead just the section(s) we care about.
2020-07-23 21:36:43 -06:00
Jorik Schellekens
501e0c29ca Merge remote-tracking branch 'origin' into joriks/eslint-config 2020-07-21 15:32:50 +01:00
Travis Ralston
a0b2859436 Support custom tags in the room list again
Fixes https://github.com/vector-im/riot-web/issues/14091

Design needs work, however this is behind labs anyways. This re-implements the behaviour of the old room list.

The implementation ended up being a lot easier due to early confusion with what the TagOrderStore and TagPanel take care of. Turns out they don't deal with tags, but groups. As such, we don't need to do anything with filtering (though we keep some sanity checks in place for safety), and just have to wire up the CustomRoomTagPanel and CustomRoomTagStore.
2020-07-20 16:51:16 -06:00
Jorik Schellekens
b3fa855bd8 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into joriks/eslint-config 2020-07-20 16:22:32 +01:00
Bruno Windels
4fe4788c2e Merge branch 'develop' into element 2020-07-14 14:31:31 +02:00
Travis Ralston
4a8a59c578 Make EffectiveMembership utils generic
Fixes https://github.com/vector-im/riot-web/issues/14460

Just have to move them to utils.
2020-07-13 20:29:46 -06:00
J. Ryan Stinnett
c77b312fd3 Merge branch 'jryans/rename-strings' into 'element'
Update brand name using variable in all strings

See merge request new-vector/element/element-web/matrix-react-sdk!3
2020-07-13 12:23:28 +00:00
Michael Telatynski
c3789245b8 Be consistent with the at-room pill avatar configurability
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-12 19:25:43 +01:00
Travis Ralston
0e49c4343c Internalize algorithm updates in the new room list store
Fixes https://github.com/vector-im/riot-web/issues/14411

The act of setting/changing the algorithm was causing the update function to be marked, meaning we wouldn't trigger an update until something else happened later. To get around this, and still support internal functions spamming calls without multiple updates, we simply move the guts to an internalized function and make the public interface do a trigger.
2020-07-10 21:59:12 -06:00
J. Ryan Stinnett
9085627a28 Use brand name from config in all strings 2020-07-10 19:57:01 +01:00
Travis Ralston
46d53e5c8c Reset before trigger just in case the function triggers too 2020-07-10 08:14:33 -06:00
Travis Ralston
1315f34662 Dedupe room list store updates by marking for updates
The core of this is in the MarkedExecution class, with the remainder of the commit ensuring that the right marks and triggers are in place to do the firing.

Because everything is async/await and run through the RoomListStore, we don't have to worry about self-fed updates in the algorithm classes. This also means we have to trigger pretty much all the time. 

Changes to tag ordering / list sorting get hit through two paths, so we mark before we do a bulk update and otherwise assume the call is coming in from outside.
2020-07-09 14:53:14 -06:00
Michael Telatynski
97711032d8 Fix signature of sleep utility
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-02 22:38:21 +01:00
Jorik Schellekens
b110639c76 Merge remote-tracking branch 'origin' into joriks/eslint-config 2020-06-29 16:49:33 +01:00
Jorik Schellekens
7699aafcaf Use new eslint package- fix lint issues in ts and js 2020-06-23 17:01:19 +01:00
Travis Ralston
26317b6826
Merge pull request #4803 from matrix-org/travis/room-list/setting-diff
Only fire setting changes for changed settings
2020-06-22 14:16:24 -06:00
Travis Ralston
1fe3e33dbf Factor out cloning to a util and use it everywhere 2020-06-22 14:14:43 -06:00
Travis Ralston
1a427b8ff7 Fix sticky headers over/under extending themselves in the new room list
Fixes https://github.com/vector-im/riot-web/issues/14095
2020-06-22 13:09:42 -06:00
J. Ryan Stinnett
37442b92ae Update read receipt remainder for internal font size change
In https://github.com/matrix-org/matrix-react-sdk/pull/4725, we changed the
internal font size from 15 to 10, but the `toRem` function (currently only used
for read receipts remainders curiously) was not updated. This updates the
function, which restores the remainders.

Fixes https://github.com/vector-im/riot-web/issues/14127
2020-06-22 19:02:03 +01:00
Travis Ralston
099661c2aa Only fire setting changes for changed settings
Previously we were firing updates for everything, which is bad. This has an effect of causing the room list to update itself every time the user goes to toggle some account settings.
2020-06-22 10:18:38 -06:00
Jorik Schellekens
05d0309081 Lint a few semicolons 2020-06-18 14:32:43 +01:00
Travis Ralston
e4a51a7c01 Add presence icons; Convert to generic icon component
For https://github.com/vector-im/riot-web/issues/14039
2020-06-16 14:44:37 -06:00
Travis Ralston
eefc40e0f8 Use IDestroyable instead of IDisposable
For consistency within our project
2020-06-09 08:08:47 -06:00
Travis Ralston
d9bd3cfc38
Merge pull request #4732 from matrix-org/travis/badge-ts
Convert FormattingUtils to TypeScript and add badge utility function
2020-06-09 08:01:19 -06:00
Travis Ralston
8faa0936c9 98 -> 99+ 2020-06-09 08:01:03 -06:00
Travis Ralston
1f82396ec5 Remove unused type 2020-06-08 21:40:25 -06:00
Travis Ralston
3fcd5505b3 Support prioritized room list filters
This is to fix an issue where when using both the community filter panel and the search box it's an AND rather than further refining the results.

This makes the search box further refine the community filter panel results.
2020-06-08 21:38:56 -06:00
Travis Ralston
21c8611300 Convert FormattingUtils to TypeScript and add badge utility function
The new function is to be used in the new room list.
2020-06-08 12:14:32 -06:00
Travis Ralston
e4aeabe5a6
Merge pull request #4444 from pv/jitsi-popout-immediate-join
Ensure active Jitsi conference is closed on widget pop-out
2020-06-07 20:22:39 -06:00
Travis Ralston
bc2fbefb5c Remove iteratorToArray 2020-06-03 11:29:06 -06:00
Travis Ralston
73a8e77d32 Add initial filtering support to new room list
For https://github.com/vector-im/riot-web/issues/13635

This is an incomplete implementation and is mostly dumped in this state for review purposes. The remainder of the features/bugs are expected to be in more bite-sized chunks.

This exposes the RoomListStore on the window for easy access to things like the new filter functions (used in debugging).

This also adds initial handling of "new rooms" to the client, though the support is poor.

Known bugs:
* [ ] Regenerates the entire room list when a new room is seen.
* [ ] Doesn't handle 2+ filters at the same time very well (see gif. will need a priority/ordering of some sort).
* [ ] Doesn't handle room order changes within a tag yet, despite the docs implying it does.
2020-06-01 16:49:22 -06:00
Michael Telatynski
efd0da44a1 Give contextual feedback for manual update check instead of banner
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-29 18:24:45 +01:00
Travis Ralston
a9c54153ee Update badge counts in new room list as needed 2020-05-26 14:16:33 -06:00
Michael Telatynski
fe03d02cf6 Fix reacting to redactions
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-23 08:43:15 +01:00
Jorik Schellekens
6d9d4ee547 Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into joriks/font-scaling-slider 2020-05-20 13:46:17 +01:00
Travis Ralston
9aff2e836e
Merge pull request #4593 from matrix-org/travis/dispatcher-types
Convert the dispatcher to TypeScript
2020-05-18 23:22:32 -06:00
Travis Ralston
798e7a1f86 Merge branch 'develop' into travis/dispatcher-types 2020-05-15 09:56:02 -06:00
Michael Telatynski
eb6796bd0e Migrate PasswordScorer to TypeScript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-14 19:53:09 +01:00
Michael Telatynski
e241da3af0 Fix diff wrong route offsets because of skipping a node insert
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-14 15:35:38 +01:00
Travis Ralston
90a898d03f Move dispatcher into a subdirectory
We're expecting to have a whole bunch of types for the dispatched payloads, so pull the thing into a directory we can throw them in.
2020-05-13 21:07:50 -06:00
Jorik Schellekens
fc6e5227ac FIx roomsublist heights.
- also fiddles the font size numbers
2020-05-13 22:24:22 +01:00
Jorik Schellekens
33a5b5142d Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into joriks/font-scaling-slider 2020-05-07 18:01:20 +01:00
Michael Telatynski
9c916cc544 Merge branches 'develop' and 't3chguy/app_load4' of github.com:matrix-org/matrix-react-sdk into t3chguy/app_load4
 Conflicts:
	src/components/structures/MatrixChat.tsx
2020-04-30 17:41:14 +01:00
David Baker
719faed2ff Separate toasts for existing & new device verification
Separate device verification toasts into ones for devices that were
there when the app loaded and a separate toast for each device that
has appeared since.

Reverts part of https://github.com/matrix-org/matrix-react-sdk/pull/4506
(clicking a device from your own UserInfo now triggers the legacy
verification flow again).

Fixes https://github.com/vector-im/riot-web/issues/13422
Fixes https://github.com/vector-im/riot-web/issues/13418
2020-04-28 18:35:16 +01:00
Jorik Schellekens
1b83faaa8d Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into joriks/font-scaling-slider 2020-04-28 15:38:46 +01:00
Jorik Schellekens
1289367a6b Fix indentation 2020-04-28 14:31:49 +01:00
Jorik Schellekens
fe326b9f08 Enfore function name capitalisation 2020-04-28 14:31:49 +01:00
Jorik Schellekens
0fe0d728f1 lint 2020-04-27 11:51:55 +01:00
Jorik Schellekens
3f56ed393d Use a function to convert to rem. 2020-04-27 11:51:54 +01:00
Travis Ralston
35dd892dce
Merge pull request #4458 from matrix-org/travis/fix-sticker-picker-add
Use WidgetType more often to avoid breaking new sticker pickers
2020-04-23 08:18:12 -06:00
Jorik Schellekens
5caec2a289 lint 2020-04-23 10:45:47 +01:00
Jorik Schellekens
05d11fea69 Use a function to convert to rem. 2020-04-23 10:45:46 +01:00
Pauli Virtanen
352ea29d17 Implement widget ReceiveTerminate capability
Signed-off-by: Pauli Virtanen <pav@iki.fi>
2020-04-22 19:37:52 +03:00
Michael Telatynski
01abb61e9a C
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-22 13:08:33 +01:00
Michael Telatynski
d915e613dc Convert promise utility module to tyepscript
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-22 12:27:39 +01:00
Travis Ralston
3a360b91b9 Update logging for unmanaged widgets, and add TODO comments for other areas
Just a minor thing that is bothersome. Renaming classes and functions is a bit more of an impact than is worth right now, so have settled for littering TODO comments all over the place.
2020-04-22 00:34:08 -06:00
Travis Ralston
f54e99c708 Use WidgetType more often to avoid breaking new sticker pickers
Turns out that setUserWidget() wasn't updated to take a real WidgetType, but the code in ScalarMessaging thought it did. This leads to integration managers trying to add sticker widgets with an object `type` rather than a string `type`, which doesn't work.

This updates other code paths which call into the various widget classes to use WidgetType more often. The actual code path for fixing widgets is resolved in WidgetUtils for the setUserWidget function body.
2020-04-21 16:01:10 -06:00
Travis Ralston
d8a5ba9b14 Merge branch 'develop' into travis/moar-jitsi 2020-04-20 09:21:48 -06:00
Michael Telatynski
a37ecbbb34
update console.error 2020-04-15 19:24:33 +01:00
Michael Telatynski
89bc3bdd5b consolidate and extract copyPlaintext, copyNode and selectText
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-15 00:16:11 +01:00
Travis Ralston
4fe16b1b84
Merge branch 'develop' into travis/moar-jitsi 2020-04-14 12:57:28 -06:00
Michael Telatynski
af4ef38a41 remove dependency on qs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-13 21:28:23 +01:00
Michael Telatynski
466ecf191a move urlSearchParamsToObject and global.d.ts to react-sdk
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-13 21:23:40 +01:00
Travis Ralston
b4b0c4c6df Add comments to highlight where we'll need m.widget support
For https://github.com/vector-im/riot-web/issues/13111
2020-04-09 15:14:07 -06:00
Travis Ralston
dc92f557fd Support m.jitsi-typed widgets as Jitsi widgets
Fixes https://github.com/vector-im/riot-web/issues/9268
2020-04-09 15:11:57 -06:00
Michael Telatynski
24a5d8355f
Merge pull request #4288 from matrix-org/t3chguy/react_stickers
Deem m.sticker events as actionable for reacting
2020-04-07 17:10:42 +01:00
David Baker
a76b089cf3
Merge pull request #4319 from matrix-org/dbkr/jitsi_fix_popout
Fix popout support for jitsi widgets
2020-04-01 11:57:25 +01:00
David Baker
072d9f12c7 Remove unintentional changes 2020-04-01 11:41:32 +01:00
David Baker
274eb75c38 Remove get-config API
which is no longer necessary now the jitsi wrapper has its own
external-api script
2020-04-01 10:40:03 +01:00
David Baker
538147f7fa Better support for widgets overriding their URLs
Move the URL processing into AppTile so that the widget can have a
URL used for embedding in the page and a separate one for popping
out into a browser.
2020-04-01 10:00:33 +01:00
J. Ryan Stinnett
a3555cacea Merge remote-tracking branch 'origin/develop' into jryans/id-change-red 2020-03-30 14:52:22 +01:00
Zoe
098df07c67 review feedback 2020-03-30 10:18:47 +01:00
J. Ryan Stinnett
37619dd127 Show red shield for users that become unverified
For any users that we previously verified but that are not unverified, we will
now mark them and rooms they are in with a red shield.

Fixes https://github.com/vector-im/riot-web/issues/12808
2020-03-28 00:21:18 +00:00
Zoe
1f0d7923d7 with output type 2020-03-27 13:51:30 +00:00
Zoe
5b7e7f49d1 lint 2020-03-27 13:50:03 +00:00
Zoe
5d7adef0a2 Factor out shield display rules into one file 2020-03-27 13:45:35 +00:00
Michael Telatynski
b489a7c0d5 Allow reacting to stickers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-27 00:50:41 +00:00
Bruno Windels
0fb96fda6e
Merge pull request #4272 from matrix-org/bwindels/safaripersisted
Fall back to non-standard persisted api for Safari
2020-03-25 17:56:47 +00:00
Bruno Windels
0097134ade
Update src/utils/StorageManager.js
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2020-03-25 17:56:35 +00:00
Bruno Windels
f6e9c32c48 fall back to non-standard persisted api for Safari 2020-03-25 12:04:09 +01:00
Travis Ralston
bdcb65de77 Support and send the config over to capable widgets
For https://github.com/vector-im/riot-web/pull/12845
2020-03-24 09:55:54 -06:00
Travis Ralston
f7bf0d013c Support sending and receiving v1 Jitsi widgets
Fixes https://github.com/vector-im/riot-web/issues/12816
Fixes https://github.com/vector-im/riot-web/issues/12814
2020-03-23 10:18:30 -06:00
Travis Ralston
b8ef736038
Merge pull request #4251 from matrix-org/travis/jitsi-name
Improve naming of Jitsi conferences
2020-03-23 09:55:02 -06:00
Michael Telatynski
8822bb06f1
Update WidgetUtils.js 2020-03-22 02:14:50 +00:00
Travis Ralston
c17c47d88b
Remove null check that was fixed in another PR
See https://github.com/matrix-org/matrix-react-sdk/pull/4255
2020-03-21 11:35:07 -06:00
Michael Telatynski
506927ad8a change to defaults
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-21 10:49:55 +00:00
Michael Telatynski
ca02ff493c Fix local jitsi build url fail and missing argument
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-03-21 10:42:07 +00:00
Travis Ralston
94d23c815a Improve naming of Jitsi conferences
Fixes https://github.com/vector-im/riot-web/issues/12812
2020-03-20 14:19:47 -06:00
Travis Ralston
92251316a3 Switch to named object 2020-03-19 11:51:01 -06:00
Travis Ralston
8519a83b61 Appease the linter 2020-03-18 15:58:57 -06:00
Travis Ralston
9da57817d1 Use a local wrapper for Jitsi calls
Requires https://github.com/vector-im/riot-web/pull/12780
2020-03-18 15:50:12 -06:00
Travis Ralston
7dd7417f12 Enable support for TypeScript in components
Includes: compilation, translations, IDE support (use .tsx not .ts), typings, and other build tools.

TypeScript component have to import PropTypes and React with `import * as React from 'react';`
2020-03-11 18:03:43 -06:00
Travis Ralston
e4d323d2f2 Disable edits on redacted events
Fixes https://github.com/vector-im/riot-web/issues/12633
2020-03-06 14:23:20 -07:00
Travis Ralston
9836a7a655
Merge pull request #4176 from matrix-org/travis/linkify-rooms
Fix room alias references in topics
2020-03-04 15:35:34 -07:00
Travis Ralston
4a976acb84 Add a null check to getUniqueRoomsWithIndividuals
Fixes https://github.com/vector-im/riot-web/issues/12611
2020-03-04 14:18:56 -07:00
Travis Ralston
d820356990 Convert alias links in room header topics to local permalinks
Fixes https://github.com/vector-im/riot-web/issues/12605
2020-03-04 13:56:58 -07:00
Michael Telatynski
d783ce86c8 Use noreferrer in addition to noopener for edge case browsers
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-23 22:14:29 +00:00
Matthew Hodgson
7696f704b2 Fix two big DOM leaks which were locking Chrome solid.
pillifyLinks leaked Pill components, which if they contained a BaseAvatar
would leak a whole DOM tree retained by the BaseAvatar's onClientSync
event listener.  This tracks the Pill containers so they can be unmounted
via unmountPills.

BasicMessageComposer set an event listener on selectionchange in onFocus
which leaked if onBlur wasn't called.  This removes it in unmount.

We've also seen Velociraptor retaining full DOM trees from RRs, which
this doesn't address as the leak is probably within Velocity, and the plan
is to replace it with CSS animations.

Should fix https://github.com/vector-im/riot-web/issues/12417
2020-02-22 23:51:30 +00:00
Michael Telatynski
ffde11ca91 Use Persistent Storage where possible
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-20 00:38:08 +00:00
Travis Ralston
330b489fd5 Switch back to legacy decorators
Empirically the build is fine with these, but it is unfortunate that we have to reply on deprecated semantics. TypeScript should help fix this.
2020-01-28 16:44:30 +00:00
Travis Ralston
d0c28adfb1 Appease the linter 2020-01-28 12:53:37 +00:00
Travis Ralston
21405b8f25 Fix skinning and babel tagets 2020-01-28 12:47:38 +00:00
Damir Jelić
e2dd2bd950 Merge branch 'poljar/seshat-ui-pr' into develop 2020-01-27 17:18:17 +01:00
Damir Jelić
2d8477aaa6 FormattingUtils: Add a formatCountLong method. 2020-01-24 16:13:55 +01:00
Bruno Windels
66768416a6 dont assume the room exist ... not sure why though 2020-01-24 14:20:48 +01:00
Bruno Windels
2483337e89 don't use removed .event property anymore on verification request 2020-01-24 11:59:01 +01:00
Bruno Windels
95a0ebaf06
Merge pull request #3796 from matrix-org/bwindels/verification-right-panel
Initial support for verification in right panel
2020-01-20 17:18:32 +00:00
Michael Telatynski
c97de43f69 Remove unused fetch polyfills, querystring, require-json. Move glob to dev-dep
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-18 02:01:45 +00:00
Bruno Windels
5556cb5749 Merge branch 'develop' into bwindels/verification-right-panel 2020-01-17 16:02:51 +01:00
Damir Jelić
2fe3603737 utils: Add an utility function to format bytes. 2020-01-17 14:22:22 +01:00
Travis Ralston
372861c9df Merge branch 'develop' into travis/ftue/user-lists/5.3-go-button 2020-01-16 13:36:59 -07:00
Travis Ralston
d1fcef1211 Merge branch 'develop' into bwindels/verification-right-panel 2020-01-16 13:23:32 -07:00
Travis Ralston
d763d7e633 Merge branch 'develop' into travis/ftue/user-lists/5.2-i18n 2020-01-15 10:49:38 -07:00
Travis Ralston
443744733d Move DM creation logic into DMInviteDialog
Fixes https://github.com/vector-im/riot-web/issues/11645

The copy hasn't been reviewed by anyone and could probably use some work.
2020-01-14 23:32:00 -07:00
Travis Ralston
b69b284efa Humanize the recent DM rooms ourselves for translations 2020-01-13 21:20:01 -07:00
Travis Ralston
a8c8406ac4 Merge remote-tracking branch 'origin/t3chguy/jest' into travis/sourcemaps 2020-01-09 16:06:46 -07:00
Travis Ralston
135c84251c Fix more imports post-merge 2020-01-09 14:19:19 -07:00
Travis Ralston
fde32f13a5 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop 2020-01-09 14:15:09 -07:00
Michael Telatynski
c551f2983a Add TextualBody-test.js
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-01-06 13:28:29 +00:00
Bruno Windels
3b9c5c0a27 remove unused code 2020-01-03 13:50:13 +01:00
Bruno Windels
d8a38e6b74 WIP 2020-01-03 13:42:17 +01:00
Travis Ralston
4de0f7257a Initial implementation of FTUE user lists design
This covers the "recents" section and rough design exclusively. It is known that the Field does nothing and that there's a bunch of missing functionality - this is to be iterated upon in future PRs. Labs flag is to aide development and should be removed in a very near future PR.

Also, this is focusing on DMs and not user lists in general because I misinterpreted the scope. I'll fix this in a future PR and instead make this the best DM invite dialog it can be.

Closes https://github.com/vector-im/riot-web/issues/11197
2020-01-02 17:40:18 -07:00
Travis Ralston
f1ac3d2f64 Convert imports to ES6 from CommonJS
This is needed because `require()` means something different in webpack - it ends up importing the module as something we didn't expect (and is occasionally async)
2019-12-22 21:16:06 -07:00
Travis Ralston
042bd35d79 Fix MatrixClientPeg imports 2019-12-22 21:15:54 -07:00
Travis Ralston
806d728d59 Import from the js-sdk's src/ directory
Because ES6 and such.
2019-12-22 21:14:33 -07:00
Travis Ralston
be4eeb5e07 Fix js-sdk imports for new module 2019-12-22 21:10:26 -07:00
Travis Ralston
d56f0f2a25 Convert many imports to handle ES6 exports
Reliant upon https://github.com/matrix-org/matrix-react-sdk/pull/3761
2019-12-22 21:04:42 -07:00
Michael Telatynski
24d0d0d596
Merge pull request #3743 from matrix-org/t3chguy/react16_contexts
Migrate away from React Legacy contexts API
2019-12-19 20:32:11 +00:00
Michael Telatynski
3678e64f5d Internationalise M_TOO_LARGE error from Synapse 2019-12-19 13:25:43 +00:00
Michael Telatynski
937b32663c Migrate away from Legacy React Contexts 2019-12-17 17:26:12 +00:00
Michael Telatynski
ab3fb6581b Down to 7 test failures 2019-12-17 11:24:37 +00:00
Travis Ralston
9865ce899b Add a bunch of docs
We're making an assumption here that the decorator is actually all over the app when it's not.
2019-12-16 16:34:46 -07:00
Travis Ralston
0a9985fb48 Rename decorator for clarity 2019-12-16 16:10:11 -07:00
Travis Ralston
20a615396b Implementation of new potential skinning mechanism
With a switch to Only One Webpack™ we need a way to help developers generate the component index without a concurrent watch task. The best way to do this is to have developers import their components, but how do they do that when we support skins? The answer in this commit is to change skinning.

Skinning now expects to receive your list of overrides instead of the react-sdk+branded components. For Riot this means we send over *only* the Vector components and not Vector+react-sdk. 

Components can then be annotated with the `replaceComponent` decorator to have them be skinnable. The decorator must take a string with the dot path of the component because we can't reliably calculate it ourselves, sadly. 

The decorator does a call to `getComponent` which is where the important part of the branded components not including the react-sdk is important: if the branded app includes the react-sdk then the decorator gets executed before the skin has finished loading, leading to all kinds of fun errors. This is also why the skinner lazily loads the react-sdk components to avoid importing them too early, breaking the app.

The decorator will end up receiving null for a component because of the getComponent loop mentioned: the require() call is still in progress when the decorator is called, therefore we can't error out. All usages of getComponent() within the app are safe to not need such an error (the return won't be null, and developers shouldn't use getComponent() after this commit anyways).

The AuthPage, being a prominent component, has been converted to demonstrate this working. Changes to riot-web are required to have this work.

The reskindex script has also been altered to reflect these skinning changes - it no longer should set the react-sdk as a parent. The eventual end goal is to get rid of `getComponent()` entirely as it'll be easily replaced by imports.
2019-12-12 19:48:45 -07:00
Michael Telatynski
142a71cc67
Merge pull request #3694 from matrix-org/t3chguy/fix_SpecPermalinkConstructor
Fix ?via= args in SpecPermalinkConstructor.js
2019-12-08 10:04:41 +00:00
Michael Telatynski
857f086501 Fix ?via= args in SpecPermalinkConstructor.js
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-03 00:05:19 +00:00
Travis Ralston
4d5f133b17
Merge pull request #3684 from matrix-org/travis/auto-invite-upgrades
Add an option to invite users to upgraded private rooms
2019-12-02 17:03:25 -07:00
Travis Ralston
f020929345 Add an option to invite users to upgraded private rooms
The option doesn't show up on public room upgrades.
2019-11-27 20:29:11 -07:00
Travis Ralston
673e6c3162 Don't assume that diffs will have an appropriate child node
Fixes https://github.com/vector-im/riot-web/issues/11497

This is a regression from react-sdk v1.5.0 where the diff feature was added in the first place. It only affects lists.
2019-11-27 12:26:43 -07:00
Bruno Windels
4a684d01a4
Merge pull request #3661 from matrix-org/bwindels/verif-toasts
Show incoming verification requests in in-app notifications
2019-11-22 16:39:18 +00:00
Bruno Windels
c705752317 add toast for verification requests
this uses a verification requests as emitted by the js-sdk with
the `crypto.verification.request` rather than a verifier as emitted
by `crypto.verification.start` as this works for both to_device and
timeline events with the changes made in the js-sdk pr.
2019-11-22 16:08:27 +01:00
Michael Telatynski
d3f872bf7a Merge branches 'develop' and 't3chguy/remove_bluebird' of github.com:matrix-org/matrix-react-sdk into t3chguy/remove_bluebird 2019-11-21 11:15:32 +00:00
Michael Telatynski
6121420113
Merge branch 'develop' into t3chguy/remove_bluebird 2019-11-20 15:21:23 +00:00
Travis Ralston
b185eed462 Wire up the widget permission prompt to the cross-platform setting
This doesn't have any backwards compatibility with anyone who has already clicked "Allow". We kinda want everyone to read the new prompt, so what better way to do it than effectively revoke all widget permissions?

Part of https://github.com/vector-im/riot-web/issues/11262
2019-11-18 17:56:33 -07:00
Travis Ralston
f5ec9eb8f4 Ensure widgets always have a sender associated with them
Fixes https://github.com/vector-im/riot-web/issues/11419
2019-11-18 13:16:36 -07:00
J. Ryan Stinnett
d5d2f7f936
Merge pull request #3588 from matrix-org/jryans/identity-disco-opt
Relax identity server discovery error handling
2019-11-18 17:09:08 +00:00
Michael Telatynski
d4d51dc61f Rip out the remainder of Bluebird 2019-11-18 10:03:05 +00:00
Michael Telatynski
54dcaf1302 Replace bluebird specific promise things. Fix uses of sync promise code.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-14 13:52:17 +00:00
Michael Telatynski
5c24547ef5 re-add and actually use promise timeout util
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-14 09:37:26 +00:00
Michael Telatynski
bc90789c71 Remove unused promise utils method
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-14 00:39:48 +00:00
Michael Telatynski
79ebb9091c
Merge branch 'develop' into t3chguy/remove_bluebird_1 2019-11-12 18:16:34 +00:00
Travis Ralston
6d0b388fa2
Merge branch 'develop' into travis/mjolnir 2019-11-12 10:00:01 -07:00
Michael Telatynski
c3df2f941d attach promise utils atop bluebird 2019-11-12 12:30:05 +00:00
Michael Telatynski
2ea239d192 Replace rest of defer usages using small shim. Add homebrew promise utils
(cherry picked from commit 6850c14739)
2019-11-12 12:07:56 +00:00
Michael Telatynski
7a512f7299 Revert "Replace rest of defer usages using small shim. Add homebrew promise utils"
This reverts commit 6850c147
2019-11-12 11:56:43 +00:00
Michael Telatynski
6850c14739 Replace rest of defer usages using small shim. Add homebrew promise utils 2019-11-12 11:45:28 +00:00
Bruno Windels
0d2f9c4215 add verification request tile + styling 2019-11-07 19:54:56 +01:00
Bruno Windels
9c4470e599 helper class to track the state of the verification
as we will have 2 tiles, and both need to track
the status of the verification request, I've put
the logic for tracking the state in this helper class
to use from both tiles.
2019-11-07 19:54:56 +01:00
J. Ryan Stinnett
03c93b5f38
Merge pull request #3595 from N-Pex/linkify-fix
Fix linkify imports
2019-11-07 12:28:57 +02:00
David Baker
0464b094a6 Fix softcrash if editing silly events
If you sent an event with a body of the empty json object, riot
would then softcrash when you pressed the up arrow because it
would try to treat a json object as a string and run split on it.
2019-11-06 11:44:32 +00:00
N-Pex
d403ed7513 Fix linkify imports
VECTOR_URL_PATTERN was 'undefined' inside Permalinks.tryTransformPermalinkToLocalHref()
2019-11-06 10:41:14 +01:00
J. Ryan Stinnett
446e21c2e1 Relax identity server discovery error handling
If discovery results in a warning for the identity server (as in can't be found
or is malformed), this allows you to continue signing in and shows the warning
above the form.

Fixes https://github.com/vector-im/riot-web/issues/11102
2019-11-01 12:27:56 +00:00
Travis Ralston
3e4a721111 Appease the linter 2019-10-31 16:27:45 -06:00
Travis Ralston
b93508728a Add personal list management to Mjolnir section 2019-10-31 14:24:51 -06:00
Travis Ralston
e6e12df82d Add structural base for handling Mjolnir lists 2019-10-31 13:20:18 -06:00
J. Ryan Stinnett
0fc5108817 Add a prompt when interacting with an identity server without terms
This adds a prompt whenever we are about to perform some action on a default identity
server (from homeserver .well-known or Riot app config) without terms. This
allows the user to abort or trust the server (storing it in account data).

Fixes https://github.com/vector-im/riot-web/issues/10557
2019-10-31 13:13:13 +00:00
Michael Telatynski
93429d7c2e Break withLegacyMatrixClient into a util module
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-10-17 19:13:37 +01:00
David Baker
d82a05fbae Fix integration manager not updating when set
setUserWidget was modifying the content of the old event itself,
so when `waitForUserWidget()` checked the content to see if it was
there yet, it was, but because the echo hadn't come back, the
IntegrationManager hadn't rebuilt its list.

In other news, its terrifying that we can just accidentally modify
the content of an event in the store. I'm going to make a js-sdk
PR that freezes the content and see what breaks...

Fixes https://github.com/vector-im/riot-web/issues/10977
2019-10-02 15:26:54 +01:00
Travis Ralston
6b09c3e9e6 Appease the linter 2019-09-30 21:03:16 -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
ce0a534db1 Fix pills for CIDER too 2019-09-30 20:37:24 -06:00
Travis Ralston
2824f468d9 Update pill processing to handle better permalinks 2019-09-30 20:27:51 -06:00
Travis Ralston
2cb0b4903a Converge on permalink processing for HtmlUtils and linkify-matrix 2019-09-30 20:17:54 -06:00
Travis Ralston
ff4eee5239 Minor cleanup of getPermalinkConstructor 2019-09-30 16:09:19 -06:00
Travis Ralston
8acaa3ce95 Update generated Riot permalinks
Also adds some safety around the Riot URL to ensure it mostly looks like a URL
2019-09-30 16:05:28 -06:00
Travis Ralston
199dfa7bf9 Always check if the permalink is a spec permalink
See code for rationale
2019-09-30 16:04:49 -06:00
Travis Ralston
3e5a39d646 Add utility function for permalink parsing 2019-09-30 16:04:22 -06:00
Travis Ralston
9bb1ebb89d Support riot-level permalink parsing 2019-09-30 16:03:52 -06:00
Travis Ralston
baf78da791 Support spec-level permalink parsing 2019-09-30 16:03:24 -06:00
Travis Ralston
f183e96d66 Introduce a RiotPermalinkConstructor and fix the setting name
Originally we were planning on using the current location as the permalink prefix, but that doesn't work if the user is a desktop user.
2019-09-30 13:04:20 -06:00
Travis Ralston
f879185aef Move permalink host check into permalink constructors
Without the requirement for a room to work
2019-09-30 12:53:45 -06:00
Travis Ralston
926e1146f9 Move spec permalinks into their own class
This allows for Riot permalinks to be introduced without if-else ladders everywhere.
2019-09-30 12:51:17 -06:00
Travis Ralston
f9d5e89017 Move early parts of matrix.to bits into its own class 2019-09-30 12:37:13 -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
Bruno Windels
166364ba03 Fix: make sure scalarUrls is never undefined 2019-09-16 10:12:15 +02:00
J. Ryan Stinnett
166fb696c2 Allow connecting to an IS from address picker
This allows those who previously disconnected from an IS to either choose the
default IS or a custom one from Settings via the address picker dialog.

Part of https://github.com/vector-im/riot-web/issues/10619
2019-08-29 15:28:34 +01:00
Travis Ralston
19b7d18e7a No-op removals of widgets that don't exist
An example of this is setting your very first widget: there's nothing to remove, so you end up with "cannot call .getContent() of undefined" instead.
2019-08-21 18:43:29 -06:00
Travis Ralston
2dc28a608f Move URL abbreviation to its own util file 2019-08-21 08:46:10 -06:00
Travis Ralston
b77be2d380 Just use MSC1957 2019-08-14 09:33:02 -06:00
Travis Ralston
8b1c90a01e Convert to using im.vector.integration_manager for IM widget
This avoids us having to throw the entirety of MSC1957 into the queue, particularly when we're only using a third of the MSC.
2019-08-14 08:57:38 -06:00
Travis Ralston
03d735f4ed Support changing your integration manager in the UI
Part of https://github.com/vector-im/riot-web/issues/10161
2019-08-12 15:40:50 -06:00
Travis Ralston
74ce5c3541 Read integration managers from account data
For https://github.com/vector-im/riot-web/issues/4913 / https://github.com/vector-im/riot-web/issues/10161

Relies on the structure defined by [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957)

This is just the bit of code to parse the user's widgets (while watching for changes) and allow for it to be the default manager.
2019-08-09 17:35:59 -06:00
Travis Ralston
018b4f5d41 Use the default integration manager for config options 2019-08-09 17:08:26 -06:00
David Baker
366f7e277a Make registration work without an IS. 2019-08-07 11:15:56 +01:00
Bruno Windels
95f9e48f91 workaround diff-dom returning redundant diff actions 2019-07-31 12:25:04 +02:00
Michael Telatynski
657a11de83 Fix /rainbowme and /rainbow breaking apart utf-16 emoji
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-07-25 19:25:28 +01:00
Bruno Windels
3753e5261d Implement diffing html messages in the edit history 2019-07-24 11:28:56 +02:00
Travis Ralston
285b126530 Appease the linter 2019-07-11 15:14:05 -06:00
Travis Ralston
7a3aa9be2e Remove unused identityEnabled property from ValidatedServerConfig
See https://github.com/vector-im/riot-web/issues/10229
2019-07-11 15:11:09 -06:00
J. Ryan Stinnett
527e1e94a4 Update config.json docs location
Part of https://github.com/vector-im/riot-web/pull/10195
2019-06-28 13:44:18 +01:00
Bruno Windels
a1548285b5 fix copyright header and whitespace 2019-06-26 16:13:15 +02:00
Bruno Windels
19b4699bc2 WIP for showing pills in edit history 2019-06-26 11:59:56 +02:00
Bruno Windels
e54881aa24 WIP 2019-06-26 11:59:56 +02:00
Bruno Windels
0b17812b9c allow editing emotes 2019-06-14 11:01:34 +02:00
Bruno Windels
89cc45892c fix grammar fail 2019-06-13 13:28:21 +02:00
Bruno Windels
678fd37549 helper class to preserve editor state between remounting the editor 2019-06-12 18:29:21 +02:00
Bruno Windels
d13b3aa16c don't block unsent events from being edited 2019-06-12 11:20:21 +02:00
Bruno Windels
f78aeae83a also consider pending events when looking for next/prev event to edit 2019-06-12 11:19:17 +02:00
Travis Ralston
aacb942d57 Don't handle identity server failure as fatal, and use the right message
Fixes https://github.com/vector-im/riot-web/issues/10002
2019-06-10 19:28:32 -06:00
Travis Ralston
758b3394a4 Don't handle identity server liveliness errors as fatal
An invalid IS causes an invalid HS, so we switch the order of the checks. Additionally, we adjust the HS result so that it appears like a liveliness error for the IS, allowing the app to continue normally.
2019-06-07 13:14:43 -06:00
Travis Ralston
d59ad605a6 Allow the login form to be submitted, and clarify other things 2019-06-06 12:18:41 -06:00
Travis Ralston
c15ee1a829 Appease the linter 2019-06-05 12:15:37 -06:00
Travis Ralston
ace1bde238 Implement design and copy for errors 2019-06-05 11:32:02 -06:00
Travis Ralston
10f4d6b419 Appease the linter 2019-06-04 23:52:40 -06:00
Travis Ralston
e2fdeec71a Fail more softly on homeserver liveliness errors
This performs liveliness checks on the auth pages to try and show a friendlier error. Earlier checks in the app startup are expected to not block the app from loading on such failures.

See https://github.com/vector-im/riot-web/issues/9828
2019-06-04 23:42:38 -06:00
Matthew Hodgson
16ca31bf90 lint 2019-06-02 04:47:23 +01:00
Matthew Hodgson
caa950f625 add SBIX fallback twemoji font 2019-06-02 04:24:36 +01:00
Bruno Windels
3793361240 always log on return false 2019-05-29 13:24:46 +02:00
Bruno Windels
26a5bb0dcb exclude chrome in ua from safari version check for colr support 2019-05-29 13:05:59 +02:00
Bruno Windels
3014180762 fix lint & make regex more robust 2019-05-29 12:17:15 +02:00
Bruno Windels
18697d8ee7
Update src/utils/FontManager.js
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2019-05-29 10:10:18 +00:00
Bruno Windels
50f477dcd0
Update src/utils/FontManager.js
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2019-05-29 10:09:10 +00:00
Bruno Windels
66738e2284
Update src/utils/FontManager.js
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2019-05-29 10:08:59 +00:00
Bruno Windels
5c8e280a45 make sure the check doesn't blow up 2019-05-29 12:03:38 +02:00
Bruno Windels
ba54b16275 sniff safari 12, macos 10.14 to support COLR, as safari doesn't wait for the font to load to emit load 2019-05-29 11:59:50 +02:00
Bruno Windels
cf704fd2f1 fix COLR font check being racy
also make sure it doesn't run more than once.
keeping the FF sniffing because missing "extract canvas data" permissions
would still break the check.
2019-05-29 10:11:14 +02:00
Bruno Windels
afd656ae2c
Merge pull request #3025 from matrix-org/bwindels/edit-keyboard-nav
Message editing: arrow key (up/down) navigation between editable events
2019-05-27 15:12:40 +00:00
Bruno Windels
dee24ac27a extract constant 2019-05-27 16:45:26 +02:00
Bruno Windels
651cb8b9a7 lint 2019-05-27 16:43:12 +02:00
Bruno Windels
918de849c7 make sure in the future arrow up/down only goes through own events 2019-05-27 16:41:03 +02:00
Bruno Windels
e193522db1 PR feedback: put findPrev/NextEditableEvent in one function with flag 2019-05-27 16:22:55 +02:00
Travis Ralston
093de71ff8 Minus one log 2019-05-24 10:53:24 -06:00
Travis Ralston
ef9ef0e654 Add some logging for COLR checks 2019-05-24 10:36:07 -06:00
Bruno Windels
8926fcb3a6 helper functions to find next & previous editable events in timeline 2019-05-24 14:41:24 +02:00
Travis Ralston
14dc4b47fa Merge branch 'develop' into travis/feature/wellknown2 2019-05-22 23:05:54 -06:00
J. Ryan Stinnett
c9300650ed Add browser comment to extra fonts 2019-05-22 16:37:52 +01:00
J. Ryan Stinnett
11828c40e5 Add more weight of emoji font
For at least Chrome on Windows 10, we need to explicitly add additional weights
for emoji to appear when bold.
2019-05-22 16:22:18 +01:00
Bruno Windels
7a20dbe657 make sure we don't load the twemoji font multiple times on firefox 2019-05-22 13:07:54 +02:00
Bruno Windels
ee86471691 remove SBIX font and fallback to native emoji 2019-05-22 13:06:04 +02:00
Bruno Windels
10b5a9376e fix lint 2019-05-22 11:17:38 +02:00
Bruno Windels
85b448deb6 enable cache busting for twemoji font 2019-05-22 11:13:44 +02:00
Bruno Windels
9f4eb7782c exclude FF from COLR font check 2019-05-22 11:08:11 +02:00
Matthew Hodgson
30912dec17 fix lint 2019-05-22 02:41:07 +01:00
Matthew Hodgson
4ae652e5c3 load twemoji dynamically as colr or sbix; fix monospace 2019-05-22 02:31:24 +01: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
Travis Ralston
bf28993509 appease the js-doc linter
hopefully
2019-05-21 09:33:52 -06:00
Travis Ralston
52b0f285c6 Add some clarifying comments 2019-05-20 21:07:12 -06:00
Travis Ralston
3476be3327 Merge branch 'develop' into travis/feature/wellknown2 2019-05-20 19:50:02 -06: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
Travis Ralston
332f716ce4 The linter will be the death of me 2019-05-17 15:36:28 -06:00
Travis Ralston
2a187810fd Restructure TopLeftMenu for accessibility and autofocus it
We use a trick with refs to automatically focus the element, also making use of mx_HiddenFocusable to hide the unnecessary outline. 

The menu itself has been restructured to hide some elements from screen readers (reduce noise) and to have a single unordered list. Screen readers mention when the user "enters" a list, and each item was previously saying "enter list <action>" when it should have just been "<action>".

By focusing automatically, the keyboard can be used to go up/down the menu as may be expected by keyboard users.
2019-05-17 15:32:03 -06:00
Bruno Windels
f285040e0b check msgtype of original event 2019-05-17 13:26:06 +01:00
Bruno Windels
c0cfa8ad00 only allow editing of text messages 2019-05-17 10:26:19 +01:00
Travis Ralston
0c7aa39273 Merge branch 'develop' into travis/feature/wellknown2 2019-05-16 12:59:50 -06:00
Bruno Windels
b081a3156f dont show edit button for messages that are not your own 2019-05-15 15:53:49 +01:00
David Baker
fc636c6cb9 lint 2019-05-15 14:00:37 +01:00
David Baker
da1bff1c5d Fix Single Sign-on
https://github.com/matrix-org/matrix-react-sdk/pull/2826 checked
that we had data in the crypto store if the had credentials in
localStorage. However, SSO stores creds in localStorage and then
redirects the browser to remove the loginToken parameter from the
URL without starting crypto, so after the redirect, we see creds
in localStorage but no crypto data, and error.

Fix by marking when we've successfully initialised crypto and only
erroring if that flag is set.

Fixes https://github.com/vector-im/riot-web/issues/9695
2019-05-15 13:47:48 +01:00
Travis Ralston
bb16357636 Flag all generated configs as non-default by default
The app is expected to flag a particular config themselves as default. This is primarily intended so that other parts of the app can determine what to do based on whether or not the config is a default config.

See https://github.com/vector-im/riot-web/issues/9290
2019-05-14 13:06:56 -06:00
Travis Ralston
83737654ff Merge branch 'develop' into travis/feature/wellknown2 2019-05-13 09:20:10 -06:00
Michael Telatynski
8bd45ce893 add /rainbow and /rainbowme Slash Commands
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-05-12 16:36:43 +01:00
Travis Ralston
6b45e60314 Update ServerTypeSelector for registration to use a server config 2019-05-03 11:32:59 -06:00
Travis Ralston
636cb8a5cc Have ServerConfig and co. do validation of the config in-house
This also causes the components to produce a ValidatedServerConfig for use by other components.
2019-05-03 11:32:59 -06:00
J. Ryan Stinnett
44e9ca6c52 Extract isContentActionable to a separate helper
This moves the check about whether an event is actionable (for the purpose of
replies, edits, reactions, etc.) to shared utils module.
2019-05-02 12:05:17 +01:00
Hubert Chathi
443a15eeb9 actually clear bit 63 instead of bit 55 2019-04-25 11:04:48 -04: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
Bruno Windels
eeaa7143ac move name coloring out of sender profile
so we can reuse it in room preview bar
2019-04-17 10:21:30 +02:00
Travis Ralston
d755263e33 Handle M_UNSUPPORTED_ROOM_VERSION in invites and room creation
Fixes https://github.com/vector-im/riot-web/issues/8925
2019-04-09 19:03:38 -06:00
J. Ryan Stinnett
16573a6381 Track store failures after startup
This watches the `IndexedDBStore` in case it degrades. If it does, we track this
in analytics so we can observe how often it happens in the field.

Should help track errors like https://github.com/vector-im/riot-web/issues/7769
2019-04-04 11:59:53 +01:00
J. Ryan Stinnett
57d72b4deb
Merge pull request #2841 from jryans/storage-eviction-modal
Notify user when crypto data is missing
2019-04-01 17:31:39 +01:00
J. Ryan Stinnett
328f0cd6bf Notify user when crypto data is missing
If we have account data in local storage but nothing in the crypto store, it
generally means the browser has evicted IndexedDB out from under us. This adds a
modal to explain the situation and offer to completely clear storage to get
things back to normal.

Fixes https://github.com/vector-im/riot-web/issues/9109
2019-03-29 16:06:08 +00:00
Bruno Windels
a326c83016
Merge pull request #2842 from matrix-org/bwindels/bacat-scrolling-merged-develop
BACAT Scrolling
2019-03-29 14:02:15 +00:00
Bruno Windels
0a4ef44bcf fix lint 2019-03-28 18:29:48 +01:00
J. Ryan Stinnett
f396cf830c Clarify when memory stores are being used
This adds logging for the cases where memory only stores are being used. It also
reorganises the sync store path to match the crypto store.

Part of https://github.com/vector-im/riot-web/issues/9309
2019-03-28 12:40:38 +00:00
J. Ryan Stinnett
1928c43476 Check the local storage fallback for crypto store
This adds additional consistency checks to examine the local storage fallback
for the crypto store as well as the primary IndexedDB variant.

Part of https://github.com/vector-im/riot-web/issues/9309
2019-03-28 12:27:33 +00:00
J. Ryan Stinnett
73b2484e08 Catch errors when checking IndexedDB
In Firefox private browsing, we may get errors when checking storage
consistency. We don't want that to block general Riot operation, so catch those
errors and log instead.

Fixes https://github.com/vector-im/riot-web/issues/9300
2019-03-27 15:48:38 +00:00
Bruno Windels
adf263c4af Merge branch 'develop' into bwindels/bacat-scrolling-merged-develop 2019-03-27 11:46:28 +01:00
David Baker
a1e5fecb67
Merge pull request #2832 from jryans/storage-telemetry
Send telemetry about storage consistency
2019-03-27 09:58:55 +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
J. Ryan Stinnett
d06fb0d076 Send telemetry about storage consistency
This adds telemetry events about basic storage consistency, so we can start to
get an idea of how often IndexedDB eviction occurs in the field.

Fixes https://github.com/vector-im/riot-web/issues/9272
2019-03-27 09:26:15 +00:00
J. Ryan Stinnett
4c0f459995 Add basic storage consistency check
This adds a storage consistency check just before creating a client on login.
Each data store we use is checked for data and any problems are logged to the
console.

Fixes https://github.com/vector-im/riot-web/issues/9271
2019-03-26 16:34:13 +00:00
J. Ryan Stinnett
90dbeefcfb Remove unused option for disabling IndexedDB
`createMatrixClient` and surrounding paths support an argument to disable
IndexedDB, but it is never actually used. This removes the option to simplify
the code.
2019-03-26 13:29:04 +00:00
Travis Ralston
2dcb40f1be Track OpenID automatic permissions by (widgetLocation, widgetUrl) 2019-03-23 23:25:31 -06:00
J. Ryan Stinnett
2ac7dd4ca3 Explicitly create cryptoStore in React SDK
The React SDK has a client creation path that starts 2 out of 3 stores, but then
leaves the other one for the JS SDK's default value handling.

We'll soon be adding additional code to check the health of stores, so it would
be simpler to follow and think about if we create them all in one place.
2019-03-22 15:03:03 +00:00
Bruno Windels
bab2730d40 use ResizeNotifier as well to relayout room list 2019-03-15 10:16:21 +01:00
Bruno Windels
891e343df6 create ResizeNotifier to derive which areas of the app resize and emit 2019-03-15 10:16:21 +01:00
David Baker
1e7af106b0 Merge branch 'master' into develop 2019-03-06 11:28:54 +00:00
David Baker
610a6d935a Only show hosting link if domain == matrix.org
Fixes https://github.com/vector-im/riot-web/issues/9059
2019-03-06 10:22:19 +00:00
David Baker
7aa451067e Add utm_campaign to the hosting links
According to where in the app the link was clicked
2019-03-05 18:33:22 +00:00
David Baker
0244990731 Add utm_campaign to the hosting links
According to where in the app the link was clicked
2019-03-05 16:42:22 +00:00
Travis Ralston
4c4b2eedaf Check if users are already in the room before inviting them
Fixes https://github.com/vector-im/riot-web/issues/8965

This also addresses another issue where inviting a banned user shows up as "Unknown server error".
2019-03-01 13:36:24 -07:00
David Baker
e5e355ed2d Remove the white screen of welcome
If there's no home page configured, view the first room.
2019-02-14 12:35:09 +00:00
J. Ryan Stinnett
319369d1be Fix remaining warnings for enabled files 2019-01-23 18:38:49 -06:00
Travis Ralston
7f6ce69c3e Merge branch 'experimental' into travis/develop2 2019-01-17 16:03:45 -07:00
Bruno Windels
a7d21ebb8e re-apply Timer linting fixes that happened in the tiled ui PR 2019-01-17 10:44:12 +01:00
Bruno Windels
8c30d05eb8 Revert "Merge pull request #2348 from matrix-org/bwindels/roomgridview-experimental"
This reverts commit ece5cb1fcc, reversing
changes made to 64a3d2521c.
2019-01-17 10:29:37 +01:00
David Baker
55889d5491 Change wording of 'invite anyway' setting
https://github.com/vector-im/riot-web/issues/7922
2019-01-16 15:07:30 +00:00
Travis Ralston
177d9f245a
Merge pull request #2441 from matrix-org/develop
Merge develop -> experimental
2019-01-14 14:45:20 -07:00
Travis Ralston
a05c0f9214 Rephrase everything to be "invite anyways" rather than "retry"
Also handle profile errors better
2019-01-11 15:46:03 -07:00
Travis Ralston
5333114d7b Give a route for retrying invites for users which may not exist
Fixes https://github.com/vector-im/riot-web/issues/7922

This supports the current style of errors (M_NOT_FOUND) as well as the errors presented by MSC1797: https://github.com/matrix-org/matrix-doc/pull/1797
2019-01-10 21:43:21 -07:00
Bruno Windels
c6952ba5b6 fix some more lint warnings, as limit is 16 now 2019-01-07 16:56:35 +01:00
Bruno Windels
aedc220b62 fix (some) lint warnings 2019-01-07 16:33:23 +01:00
Travis Ralston
8017f0a4a1 Merge remote-tracking branch 'origin/experimental' into travis/develop-for-real 2019-01-03 16:00:23 -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
J. Ryan Stinnett
a597ad10b0 Add a few more zxcvbn strings
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
Bruno Windels
8045009d81 remove logging 2018-12-11 16:26:23 +01:00
Bruno Windels
5cd5615b69 Timer class, promise based, so clear/setTimeout doesn't grow unwieldly 2018-12-11 15:43:41 +01:00
Travis Ralston
0f348a7c78 Merge branch 'develop' into travis/invite-errors 2018-12-05 11:25:45 -07:00
Travis Ralston
987ad0b0db Check if users exist before inviting them and communicate errors
Fixes https://github.com/vector-im/riot-web/issues/3283
Fixes https://github.com/vector-im/riot-web/issues/3968
Fixes https://github.com/vector-im/riot-web/issues/4308
Fixes https://github.com/vector-im/riot-web/issues/1597
Fixes https://github.com/vector-im/riot-web/issues/6790

This does 3 things:
* Makes the `MultiInviter` check for a user profile before attempting an invite. This is to prove the user exists.
* Use the `MultiInviter` everywhere to avoid duplicating the logic. Although a couple places only invite one user, it is still worthwhile.
* Communicate errors from the `MultiInviter` to the user in all cases. This is done through dialogs, where some existed previously but were not invoked.

Specifically to the 403 error not working: What was happening was the `MultiInviter` loop was setting the `fatal` flag, but that didn't resolve the promise it stored. This caused a promise to always be open, therefore never hitting a dialog.
2018-11-29 15:05:53 -07:00
David Baker
075c13a5bd Add password strength meter to backup creation UI
https://github.com/vector-im/riot-meta/issues/227
2018-11-23 15:50:23 +00:00
Bruno Windels
ba83166661 Merge branch 'develop' into experimental 2018-10-31 14:54:22 +01: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
f2efbc15f4 apply color categories to sender profile name 2018-10-23 10:49:44 +02:00
Aaron Raimist
752d816780
Fix some more lint errors
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-11 22:06:01 -05:00
David Baker
18661e042d Fall back to another store if indexeddb start fails
If we can't start indexeddb, fall back to a different store.

Previously we just ignored the exception and ploughed on anyway, on
the assumption that startup() was just for the indexeddb store to
load data anyway, and if that failed it would just do an initial
/sync instead (and also we'd keep trying to save the sync back which
would fail...). Then, in the previous release we started pulling
the settings out of the store on startup, making the assumpton that
the store actually worked, so the read obviously failed and the app
failed to start up.

This makes Riot work in Tor browser / firefox in daft mode again.
2018-10-04 13:40:56 +01:00
David Baker
1ec0f04baf Remove old migration code
...as instructed!
2018-10-03 18:33:34 +01:00
David Baker
fa669bf096 Error on splash screen if sync is failing
Display an error on the splash screen with the spinner if the sync
request is not working, rather than just sitting there with a spinner
as if nothing is wrong.

Fixes https://github.com/vector-im/riot-web/issues/7148
2018-09-07 12:18:25 +01:00
Bruno Windels
3b29b7aab6 fix getDMRoomsForUserId not calling _getUserToRooms first (thanks e2e tests) 2018-09-04 17:36:50 +02:00
Bruno Windels
44a53cfc0d use lodash for unique function instead of rolling our own 2018-09-04 16:03:15 +02:00
Bruno Windels
e171296d51 patch self-chats lazily in favor of awaiting sync state 2018-09-04 16:00:40 +02:00
Bruno Windels
6c7cb380e0 add warning in console when patching rooms, so it appears in rage shakes 2018-09-04 13:12:26 +02:00
Bruno Windels
441036ff93 remove duplicates from room lists 2018-09-04 13:12:26 +02:00
Bruno Windels
245dfbf957 only put NON-guessed rooms in self-chats 2018-09-04 13:12:26 +02:00
Bruno Windels
c12abab52d wait until rooms are available
as accountData get processed before rooms, during initial sync
or loading sync from cache, accountData gets emitted
before any room is available, hence our patching wasn't doing
anything. Just as well, because it would have failed (see next commits)
2018-09-04 13:12:26 +02:00
Bruno Windels
fb0a0d5d9e allow self-chats 2018-08-30 12:36:53 +02:00
Bruno Windels
d8f15e1159 make sure we still have the room 2018-08-30 12:06:34 +02:00
Bruno Windels
85b6f157c1 only patch m.direct data on server once per session to avoid request storm 2018-08-30 12:01:13 +02:00
Bruno Windels
379ddfff29 dont reassign userToRooms as we're just patching it up, also better check if we really have self DMs 2018-08-30 11:50:57 +02:00
Bruno Windels
caff60d56d fix var decl 2018-08-30 11:37:13 +02:00
Bruno Windels
5afb3bfb29 patch up DMs marked to self (can happy if any client has a bug here) 2018-08-30 10:53:25 +02: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
David Baker
8567ce585b Factor out duplication of resource limit i18n 2018-08-16 13:31:17 +01:00
Bruno Windels
c8b6ccba25 fallback to room summary for dm detection 2018-08-14 11:43:03 +02:00
Bruno Windels
908de56c6d replace getMember(myId).membership with getMyMembership
This works with rooms which haven't had their members
loaded yet.
2018-08-02 11:42:05 +02:00
Bruno Windels
d87d34030a fix dm detection and conf call code with lazy loading 2018-07-25 16:10:49 +02:00
Bruno Windels
e237a02fa5 use more consistent naming 2018-07-25 16:10:49 +02:00
Bruno Windels
54904c9282 use member helper method instead of digging inside member 2018-07-25 16:10:49 +02:00
David Baker
7aab6fa6f1 Merge remote-tracking branch 'origin/develop' into dbkr/widget_echo 2018-07-18 09:35:57 +01:00
David Baker
983dc3ad2e lint 2018-07-16 16:19:18 +01:00
David Baker
0f32c3a018 PR feedback 2018-07-16 13:18:10 +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
c26b300f30 more comments 2018-07-05 19:58:10 +01:00
David Baker
eb552e5cef Just pass the roomId into WidgetEchoStore 2018-07-05 18:43:20 +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
David Baker
8b64ddcbe8 Do some level of local echo for widgets
* Show a spinner while we wait for widgets to be deleted
 * Hide widgets while they're pending deletion
 * Don't put another jitsi widget into the room if there's already
   one pending
2018-07-03 11:16:44 +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
cb89406d3e Indent 2018-06-26 15:42:29 +01:00
David Baker
4a39297e65 PR feedback 2018-06-26 15:41:43 +01:00
David Baker
0a6450507e Bits of PR feedback 2018-06-26 15:21:22 +01:00
David Baker
ca8a4a0c3f Remove unused function 2018-06-26 12:08:33 +01:00
David Baker
6cf11a15e6 Move WidgetUtils to utils dir 2018-06-26 11:59:16 +01:00
David Baker
0f2c47937c Merge the two different widget utils files 2018-06-26 11:52:21 +01:00
Travis Ralston
210fcf0d52 Correctly identify sticker picker widgets
Widgets added to account data have the `type` of "m.widget", meaning we have to look at the `content.type` which will tell us what it is. 

This also fixes a bug where all user widgets become sticker picker widgets under the right conditions.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-13 17:15:35 -06:00
Luke Barnard
6ec9e5f670
Merge pull request #1866 from matrix-org/luke/luke/group-store-refactor
Refactor GroupStores into one global GroupStore
2018-05-01 12:33:06 +01:00
Luke Barnard
023daef4b7 Refactor GroupStores into one global GroupStore
Take a step closer to a flux-like architecture for group data, for
the purposes of providing features that require it.

Now the app has a single GroupStore that can be poked to fetch
updates for a particular group.
2018-05-01 11:24:17 +01:00
Matthew Hodgson
bffd5bb891 fix constness 2018-04-29 03:09:17 +01:00
Matthew Hodgson
9701fd32b7 switch back to blob urls for rendering e2e attachments
Based on @walle303's work at https://github.com/matrix-org/matrix-react-sdk/pull/1820
Deliberately reverts 8f778f54fd
Mitigates XSS by whitelisting the mime-types of the attachments so that malicious ones
should not be recognised and executed by the browser.
2018-04-29 03:07:31 +01:00
Matthew Hodgson
70f3804227 move room directory logic over from riot-web 2018-04-11 23:58:46 +01:00
Richard Lewis
11915b0cdf Fix user widget event type.
Add comments for clarity.
2018-04-02 10:02:41 +01:00
Richard Lewis
93804e80b8 Return promise 2018-03-29 20:37:24 +01:00
Richard Lewis
b1e7dcf216 Cleanup / simplify code. 2018-03-29 17:52:34 +01:00
Richard Lewis
a33859326e Use getUserWidgets where possible. 2018-03-09 09:15:16 +00:00
Richard Lewis
e249e3d622 Correct stickerpicker naming, 2018-02-25 22:10:38 +00:00
Richard Lewis
9ae89e2b43 Reduce logging. 2018-02-23 15:27:55 +00:00
Richard Lewis
f3943bef51 Check for empty user widgets. 2018-02-07 10:05:50 +00:00
Richard Lewis
393236ba34 Update / remove stickerpacks 2018-02-07 09:23:00 +00:00
Richard Lewis
34de3729fe Add method to remove all stickerpacks. 2018-02-05 11:49:26 +00:00
Richard Lewis
1a994b88f5 Move widget utility functions in to their own file. 2018-01-11 10:32:37 +00: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
Richard van der Hoff
dff76f7db1
Merge pull request #1552 from matrix-org/t3chguy/header_access_token
Send Access Token in Headers to help prevent it being spit out in errors
2017-11-22 16:44:36 +00:00
Luke Barnard
dad797d4a2 Run linting --fix 2017-11-16 13:19:36 +00:00
Travis Ralston
de6fc32a87 Show an indicator when there are any pins in the room
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-03 20:00:48 -06:00
Michael Telatynski
44ec57358b
Send Access Token in Headers to help prevent it being spit out in errors
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-10-30 10:40:10 +00:00
Luke Barnard
0799e5cde4 Refresh group member lists after inviting users 2017-10-23 16:04:26 +01:00
Luke Barnard
d3f9a3aeb5 Run eslint --fix
Fixing 1000s of lint issues. Some rules cannot be `--fix`ed but this goes some way to linting the entire codebase.
2017-10-11 17:56:17 +01:00
David Baker
ddf1017799 Make group invites work 2017-08-16 14:58:30 +01:00
David Baker
81273ec855 Move non-invite specific stuff to UserAddress 2017-08-15 13:42:23 +01:00
David Baker
7cfef04c1f Remove other promise notify 2017-07-18 11:27:21 +01:00
David Baker
b261c89a63 Fix inviting multiple people to a room
Removes the promise notify as bluebird doesn't support it. It's
also not used anywhere now.

Fixes https://github.com/vector-im/riot-web/issues/4614
2017-07-18 11:11:42 +01:00
Richard van der Hoff
0d7cc59d99 replace q method calls with bluebird ones
```
find src test -name '*.js' |
    xargs perl -i -pe 's/q\.(all|defer|reject|delay|try|isFulfilled)\(/Promise.$1(/'
```
2017-07-12 18:05:40 +01:00
Richard van der Hoff
0254d2b3a2 q(...) -> Promise.resolve
```
find src test -name '*.js' | xargs perl -i -pe 's/\b[qQ]\(/Promise.resolve(/'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff
a06bd84213 replace imports of q with bluebird
update `package.json`

```
find src test -name '*.js' |
   xargs perl -i -pe 'if (/require\(.[qQ].\)/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'

find src test -name '*.js' |
   xargs perl -i -pe 'if (/import [qQ]/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff
b124ac21fd Fix load failure in firefox when indexedDB is disabled 2017-06-22 15:07:54 +01:00
Richard van der Hoff
e9ab667d29 Use the web worker when clearing js-sdk stores
It turns out that Firefox doesn't let you use indexeddb from private tabs,
*unless* you are *also* in a webworker. We need to either consistently use it
or not use it - so let's use it.
2017-06-21 17:43:34 +01:00
Richard van der Hoff
939f6d0798 Factor createMatrixClient out from MatrixClientPeg
... so that it can be used elsewhere.
2017-06-13 12:46:49 +01:00
Richard van der Hoff
175599beda Improve error logging/reporting in megolm import/export
I saw a rageshake where somebody had apparently failed to import a key file.
I have no idea why it happened.

Also try to make the errors the users see useful.
2017-06-08 16:55:50 +01:00
Richard van der Hoff
b16e652acc rewrite MegolmExportEncryption using async/await
... to make it easier to add exception handling
2017-06-08 14:45:01 +01:00
Richard van der Hoff
d9bc8ebc53 de-lint MegolmExportEncryption + test 2017-06-08 14:29:53 +01:00
Richard van der Hoff
fc08dc33c6 Group e2e keys into blocks of 4 characters
Hopefully this will make them a bit easier to compare.
2017-05-22 12:01:09 +01:00
Richard van der Hoff
eebc7539f9 Megolm export: Increase to 500000 PBKDF rounds
This takes 370ms on my machine (100000 only took 100ms).
2017-02-02 16:38:19 +00:00
Richard van der Hoff
c5f447260a Megolm import: Fix handling of short files
Make sure we throw a sensible error when the body of the data is too short.
2017-01-31 12:30:30 +00:00
Richard van der Hoff
62c8c20268 Megolm export: fix Android incompatibility
I'd carefully added a workaround to maintain compatibility with the Android
AES-CTR implementation... to the wrong thing.
2017-01-31 12:29:16 +00:00
David Baker
18d4d3392a Fix a bunch of linting errors
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
Richard van der Hoff
8b60cb9df0 Megolm export: Clear bit 63 of the salt 2017-01-19 10:43:41 +00:00
Richard van der Hoff
31df78f946 Use text-encoding-utf-8 as a TextEncoder polyfill
Somebody else seems to have done a good job of polyfilling TextEncoder, so
let's use that.
2017-01-18 11:39:44 +00:00
Richard van der Hoff
09ce74cc76 Fix a couple of minor review comments 2017-01-16 18:44:46 +00:00
Richard van der Hoff
f8e56778ea Encryption and decryption for megolm backups 2017-01-14 01:34:34 +00:00
Richard van der Hoff
1d5d44d63d TextEncoder polyfill
Apparently Safari doesn't sport a TextEncoder, so here's a polyfill for it.
2017-01-14 00:45:51 +00:00
Mark Haines
81e429eb14 Fix e2e attachment download by using iframes. (#562)
* Render attachments inside iframes.

* Fix up the image and video views

* Fix m.audio

* Comments, and only use the cross domain renderer if the attachment is encrypted

* Fix whitespace

* Don't decrypt file attachments immediately

* Use https://usercontent.riot.im/v1.html by default

* typos

* Put the config in the React context.

Use it in MFileBody to configure the cross origin renderer URL.

* Call it appConfig in the context

* Return the promises so they don't get dropped
2016-12-02 14:21:07 +00:00
Mark Haines
72d24f58d0 Make the promises be q promises 2016-11-11 13:57:45 +00:00
Mark Haines
bf5ecbd016 Review comments
Conflicts:
	src/ContentMessages.js
2016-11-11 13:57:42 +00:00
Mark Haines
ee1768f644 Use data:// URI rather than blob: URI to avoid XSS 2016-11-11 13:55:57 +00:00
Mark Haines
a4a0d02848 Move decryptFile into a utility function so that it can be shared between different components
Conflicts:
	src/components/views/messages/MImageBody.js
2016-11-11 13:55:48 +00:00
David Baker
1e163eabf0 Revert "Encrypt attachments in encrypted rooms," 2016-11-11 11:59:08 +00:00
Mark Haines
c838164f40 Make the promises be q promises 2016-11-08 16:26:25 +00:00
Mark Haines
911f9e4e63 Review comments 2016-11-08 11:42:20 +00:00
Mark Haines
8f778f54fd Use data:// URI rather than blob: URI to avoid XSS 2016-11-04 15:39:39 +00:00
Mark Haines
b6653dd0ed Move decryptFile into a utility function so that it can be shared between different components 2016-11-04 12:46:45 +00:00
David Baker
2be1cc9f85 Give DMRoomMap an explicit makeShared
Otherwise it will hang on to the old state client on logout.
2016-09-27 09:56:31 +01:00
David Baker
690309adfc Bring back the little green men without slowness
Introduces a singleton DMRoomMap that subscribes to account data to keep itself up to date so we don't have to keep doing the map inversion for each room tile.
2016-09-26 18:02:14 +01:00
Matthew Hodgson
0046ae50b5 switch to 3-digit formatting for counts 2016-09-17 02:39:19 +01:00
Matthew Hodgson
8508e006f0 Merge pull request #469 from matrix-org/wmwragg/chat-multi-invite
Wmwragg/chat multi invite
2016-09-13 19:30:02 +01:00
David Baker
2fd9e2a98f Pull out multi-inviting from MultiInviteDialog
MultiInviteDialog would otherwise use this, but is about to go away, so it has been left.
2016-09-13 14:47:56 +01:00
David Baker
2943db1072 Flag incoming DMs as such
* Add the 'is_direct' flag to rooms created for DMs
 * For invites, look for the DM flag when getting the DM user ID for a room
 * When accepting an invite, look for the flag and mark the room as a DM room if appropriate.
2016-09-12 18:32:44 +01:00
David Baker
8e518af96c Merge remote-tracking branch 'origin/develop' into dbkr/dont_crash_if_no_dm_rooms 2016-09-09 17:38:13 +01:00
David Baker
f1ed750246 Don't crash if no DM rooms with someone
...when opening MemberInfo.

getDMRoomsForUserId should always return a valid list, since it's a list of what DM rooms you have with somebody.
2016-09-09 17:35:35 +01:00
David Baker
6f2e0a4cdf Make rooms in MemberInfo update when necessary
Factor out the chunk of code that looks through a read receipt event
to see if it contain a read receipt from a given user, now we use it
in 2 places.
2016-09-09 16:59:59 +01:00
David Baker
aa0f15c46e List common rooms in MemberInfo 2016-09-09 16:15:01 +01:00
David Baker
8f6d413ebd Move DMRoomMap to a util subdir 2016-09-07 10:07:43 +01:00