Commit graph

216 commits

Author SHA1 Message Date
Jorik Schellekens
527fe24cd6 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into joriks/room-list-voip 2020-07-07 15:04:22 +01:00
Jorik Schellekens
5176685d20 Implement incoming call box 2020-07-06 23:05:00 +01:00
Michael Telatynski
4c7014167d Improve a11y of default BaseAvatar
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-05 01:06:36 +01:00
Travis Ralston
45f4a2a980 Fix imports for NotificationStates 2020-07-02 13:28:06 -06:00
Jorik Schellekens
2379ec577c Lint semicolons 2020-06-30 23:39:25 +01:00
Jorik Schellekens
0904ae8c7a Bug fixes 2020-06-30 23:35:59 +01:00
Jorik Schellekens
dcd51b5be3 Implement breadcrumb notifications and scrolling 2020-06-30 23:24:46 +01:00
Michael Telatynski
d1084afb92
Merge pull request #4643 from matrix-org/t3chguy/fix-memberavatar
MemberAvatar should not have its own letter fallback, it should use BaseAvatar
2020-05-26 13:41:15 +01:00
Michael Telatynski
f8d2124aa3 MemberAvatar should not have its own letter fallback, it should use BaseAvatar's
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-26 13:33:47 +01:00
Michael Telatynski
0861b1fbec remove redundant props
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-25 19:05:02 +01:00
Michael Telatynski
148f215d4e clean up
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-25 19:02:44 +01:00
Michael Telatynski
cf7acded50 Simply BaseAvatar hooks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-05-24 14:12:16 +01:00
Michael Telatynski
880e16aaa2 Merge branches 'develop' and 't3chguy/leaks' of github.com:matrix-org/matrix-react-sdk into t3chguy/leaks
 Conflicts:
	src/components/views/avatars/BaseAvatar.js
	test/components/views/messages/TextualBody-test.js
2020-05-23 11:12:58 +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
Michael Telatynski
5844bee8f2 Merge branches 'develop' and 't3chguy/leaks' of github.com:matrix-org/matrix-react-sdk into t3chguy/leaks
 Conflicts:
	src/components/views/avatars/BaseAvatar.js
2020-05-15 00:16:41 +01:00
Travis Ralston
a5f3318f3b Convert view_user dispatch to prove the conversion works
This is a relatively obvious dispatch action that doesn't require a lot of complicated type definitions, so should be a good candidate to prove the thing works. If for some reason the thing stops working, we've done something wrong.

This also adds a bit of generic types to the dispatch call so we don't confuse the tsx parser by using `dis.dispatch(<ViewUserPayload>{...})` as it thinks that's supposed to be a component. We still get type safety, and the thing remains happy with the generics approach.
2020-05-13 21:07:50 -06: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
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
fe326b9f08 Enfore function name capitalisation 2020-04-28 14:31:49 +01:00
Jorik Schellekens
00c0212c03 Revert previous fix 2020-04-27 17:35:52 +01:00
Jorik Schellekens
c995e2e021 Fix info avatar 2020-04-27 17:29:03 +01:00
Jorik Schellekens
b567b95fad Lint 2020-04-27 17:27:54 +01:00
Jorik Schellekens
bfba5e6cfe Fix member info avatar size 2020-04-27 16:57:38 +01:00
Jorik Schellekens
3f56ed393d Use a function to convert to rem. 2020-04-27 11:51:54 +01:00
Jorik Schellekens
e2aef3a62b Fix pills.
This was a hard pill to swallow
2020-04-27 11:51:54 +01:00
Jorik Schellekens
05d11fea69 Use a function to convert to rem. 2020-04-23 10:45:46 +01:00
Jorik Schellekens
1ff0f3445a Fix pills.
This was a hard pill to swallow
2020-04-23 10:45:46 +01:00
Travis Ralston
47e5cfecf2 Silence usages of componentWillReceiveProps
For https://github.com/vector-im/riot-web/issues/12877
2020-04-01 14:35:39 -06:00
Travis Ralston
3f99332f4b Use componentDidMount in place of componentWillMount where possible
This fixes a common React warning we see. Most of these components should be using constructors instead, however componentDidMount is just as good (and doesn't require converting most of these).

Conversion to classes will be done in a later stage of React warning fixes.

For https://github.com/vector-im/riot-web/issues/12877
2020-03-31 14:14:17 -06:00
Michael Telatynski
80c2aa51b6 Transition BaseAvatar to hooks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-02-21 10:41:33 +00:00
J. Ryan Stinnett
576434e8c8
Merge pull request #3855 from matrix-org/jryans/custom-status-leak
Fix event handler leak in MemberStatusMessageAvatar
2020-01-16 22:05:50 +00:00
J. Ryan Stinnett
03448313e6 Fix event handler leak in MemberStatusMessageAvatar
A typo led to an event handler leak with the custom status labs feature. A new
handler would leak each time you change rooms, which can add up over the course
of a long-lived session.
2020-01-16 21:52:36 +00:00
Travis Ralston
869fd0b2c9 Fix not being able to open profiles from the timeline
MemberAvatar was referencing the wrong dispatcher (it was imported as `dis`, like everywhere else, not `dispatcher`).

Fixes https://github.com/vector-im/riot-web/issues/11887
2020-01-16 09:40:11 -07:00
Travis Ralston
5fd27a10bb Merge branch 'develop' into travis/sourcemaps 2020-01-13 11:19:41 -07:00
J. Ryan Stinnett
77b479d50c Guard against missing members in avatars
Part of https://github.com/vector-im/riot-web/issues/11744
2020-01-13 12:29:10 +00:00
Travis Ralston
3e5cc9550b Fix import merge conflicts, removing any that aren't needed anymore
Many imports were removed as part of refactoring work, so here we are.
2020-01-09 14:17:33 -07:00
Travis Ralston
fde32f13a5 [CONFLICT CHUNKS] Merge branch 'develop' into travis/sourcemaps-develop 2020-01-09 14:15:09 -07:00
Travis Ralston
9edc361afc Use new imports for js-sdk's ContentRepo
Per f4d1c5c006
2020-01-03 12:29:22 -07:00
Michael Telatynski
1098fc939a
Merge pull request #3771 from matrix-org/t3chguy/ReactDOM.findDOMNode
stop using ReactDOM.findDOMNode in componentWillUnmount, use refs
2019-12-23 17:16:47 +00:00
Michael Telatynski
17f5849985 stop using ReactDOM.findDOMNode in componentWillUnmount, use refs 2019-12-23 12:24:49 +00:00
Travis Ralston
d002c2ccde Merge branch 'travis/babel7-wp-es6-export' into travis/sourcemaps-es6 2019-12-22 21:20:13 -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
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
Travis Ralston
344dac4fb9 Convert CommonJS exports to ES6-compatible exports
We use `export default` begrudgingly here. Ideally we'd use just `export`, though this entire SDK expects things to be exported as a default. Instead of breaking everything, we'll sacrifice our export pattern for a smaller diff - a later commit can always do the default export -> regular export conversion.
2019-12-22 21:01:02 -07:00
Michael Telatynski
937b32663c Migrate away from Legacy React Contexts 2019-12-17 17:26:12 +00:00
Michael Telatynski
757f811126 s/ContextualMenu/ContextMenu/
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-12-02 23:21:59 +00:00
Michael Telatynski
6c5b777a77 Consolidate all except tooltips
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-28 18:16:59 +00:00
Michael Telatynski
5a540f5949 Migrate MemberStatusMessageAvatar over to new Context Menus
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-11-28 16:40:45 +00: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
b243004a6c Switch to createReactClass: *everything else*. React 16 :D
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-06 18:38:11 +01:00
Michael Telatynski
ee3542453e Fix RoomAvatarEvent historic fallback
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-09 11:31:04 +01:00
Michael Telatynski
423a74c99c Clean up implementation
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-08 20:21:53 +01:00
Travis Ralston
d81804e0fe Merge branch 'develop' into matthew/low_bandwidth 2019-05-30 19:42:09 -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
230e53fe2f move most of room avatar handling to Avatar, to reuse in editor pills 2019-05-20 15:33:26 +02:00
Bruno Windels
5edfd01cb2 remove unused _getInitialLetter 2019-05-20 14:49:59 +02:00
Bruno Windels
e58d844e5b move getInitialLetter to Avatar so we can reuse it for editor pills 2019-05-20 14:20:36 +02:00
Matthew Hodgson
dc72641264 replace emojione with twemoji. completely untested & debugged & unoptimised 2019-05-19 15:23:43 +01:00
Travis Ralston
f1aa2875e1 Hide avatars from screen readers by default
To avoid having them read out the user's ID
2019-05-17 15:25:59 -06:00
Matthew Hodgson
ce24165e19 port over low_bandwidth mode to develop 2019-02-08 16:44:03 +00:00
Aaron Raimist
52ebba9d3e
Disable clicking on room icon in a better way
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-01-29 16:07:41 -06:00
Aaron Raimist
53947bee35
Fix empty lightbox when there is no avatarUrl
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-01-29 14:59:20 -06:00
J. Ryan Stinnett
4b13774585 Revert to avatar only when custom status disabled
This returns to the previous behavior of avatar only without a button when the
custom status feature is disabled so that you don't get pointer cursor for
something that does nothing when clicked.

The avatar ring spacing is kept consistent with and without the feature enabled
by using a different class in CSS.
2019-01-15 10:54:29 -06:00
J. Ryan Stinnett
233288475e Use status events for avatar ring
Similar to changes in `StatusMessageContextMenu`, this changes to using the new
status message event emitted in js-sdk to simplify state handling for the avatar
ring when a status is present.
2019-01-15 10:54:29 -06:00
J. Ryan Stinnett
fc3055f541 Tweak custom status menu size and placement 2019-01-15 10:54:29 -06:00
J. Ryan Stinnett
eae1e4c9aa Tweak custom status avatar ring
Adjusts the appearance of the avatar ring to match the latest comps.

In addition, we now always render the surrounding button element, which
simplifies styling since the same size is now occupied both with and without the
feature.

This improves alignment between text in the composer and text in the message
history (https://github.com/vector-im/riot-web/issues/8111).
2019-01-15 10:54:29 -06:00
Travis Ralston
45f05092ed Add a comment to describe why we're not using the property we should be 2018-12-19 10:21:43 -07:00
Travis Ralston
04c9fff6ce Add a feature flag for custom status messages 2018-12-18 15:11:08 -07:00
Travis Ralston
ef60a34180 Clean up and follow code style 2018-12-18 10:53:37 -07:00
Travis Ralston
f2649f7807 Use the now-prefixed js-sdk status message API
See 08b3dfa3b5
2018-12-12 23:07:03 -07:00
Travis Ralston
b0b7932f5f Move status context menu to its own component
This fixes a lot of the state bugs such as buttons not updating, etc. 

This commit also adds the border around the avatar to indicate a status is set.
2018-12-12 22:26:39 -07:00
Travis Ralston
a91963e5ee Replace the avatar next to the composer with a status entry menu
The checkmark might change, and there appears to be some state tracking mishaps that need to be worked out.

Part of https://github.com/vector-im/riot-web/issues/1528
2018-12-12 18:03:30 -07: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
0767c278e7 put userId next to member in read receipt, fall back when member missing 2018-10-10 16:14:09 +02:00
Bruno Windels
debcc20604 also show spinner on new CATCHUP state 2018-08-30 15:39:48 +02:00
Bruno Windels
d7868dbe33 delegate avatar selection to room for rooms with two members (but not in m.direct) 2018-08-30 10:54:01 +02:00
Bruno Windels
06160f5fae fix lint 2018-08-27 18:52:33 +02:00
Bruno Windels
6a077655e9 bring back old behaviour to also show member avatars if not marked as 1:1 room 2018-08-27 18:48:21 +02:00
Bruno Windels
36665d3c69 Fix: dont show 1:1 avatar for room with only 2 members loaded 2018-08-27 17:40:31 +02:00
Matthew Hodgson
8a1bd8da69 tell eslint to ignore viewAvatarOnClick being unused 2018-05-06 00:22:14 +01:00
Matthew Hodgson
500f58a963 fix deeply irritating react warning about viewAvatarOnClick on BaseAvatar 2018-05-05 23:25:50 +01:00
Aidan Gauland
6a918861bb Add UI for displaying room avatars full size
Change the onClick action on the RoomAvatar inside RoomHeader so that it brings
up a lightbox with the full-size avatar.
2018-04-21 15:47:31 +12:00
Travis Ralston
fe2cbc584d Merge branch 'develop' into travis/remove-presence 2018-04-11 15:17:28 -06:00
Luke Barnard
d877384d64
Merge pull request #593 from matrix-org/luke/fix-render-1-1-avatars-when-others-leave
Use correct 1-1 room avatar after users leave
2018-04-11 11:21:18 +01:00
Luke Barnard
8ca1243ecb Add null-guard to prevent RoomAvatar NPE when room is null
which may have been occuring when peeking into a room that the
client hasn't got a Room object for.

Fixes https://github.com/vector-im/riot-web/issues/6432
2018-04-03 17:35:34 +01:00
Luke Barnard
c903cc6375 Fix tests 2018-03-14 14:55:36 +00:00
Luke Barnard
8672b97f9a Improve room list performance when receiving messages
In summary this makes RoomTiles (and RoomAvatars) do more for
themselves in terms of reacting individually to state changes in
the js-sdk.

Instead of force updating the entire room list for avatar changes
and room name changes, do this in the RoomTile and RoomAvatar
instead. This increases the number of listeners listening to the
matrix client, but allows us to properly implement a
shouldComponentUpdate for RoomTile (because the avatar, name and
notification count are now in component state)
2018-03-14 14:29:55 +00:00
David Baker
d416b9d7d1 Copyright 2018-03-12 15:24:32 +00:00
David Baker
ac85938186 Fix syntax fail 2018-03-12 15:23:22 +00:00
lukebarnard
2549b44768 Linting 2018-02-07 18:57:32 +00:00
Luke Barnard
cf4ae681f4
Offline mode (#1723)
* Allow the client to run without connection to HS (i.e. using indexeddb)

Allows running without having pushRules (it's safe not to have these 
when running from indexeddb sync.)

This means rooms will be displayed with "unknown" notifcation state.

This assumes anything that uses the push rules will get pushRule state
again when the client starts syncing again.

For recovering from being disconnected, 
* If an avatar has fallen back, try again on reconnection
* If a thumbnail image failed to load, retry on reconnect
* Load joined groups when reconnecting

Update tests to give MELS a context.matrixClient
2018-02-06 17:50:53 +00:00
Luke Barnard
121b776e8a
Merge branch 'develop' into luke/fix-render-1-1-avatars-when-others-leave 2018-02-06 16:46:25 +00:00
Aidan Gauland
35780f5ae0 Remove use of deprecated React.PropTypes
Replace all uses of React.PropTypes with PropTypes and importing PropTypes from
'prop-types'.
2017-12-26 14:03:18 +13:00
Travis Ralston
cc5eb77658 Remove presence management
The feature is incredibly buggy and doesn't work as expected due to server behaviour and client interaction. One of the major problems is the constantly confused presence state - this is caused by the mobile apps conflicting on the state of the web app, causing it to consider the user offline or online (and rarely away) depending on how riot-android/ios is behaving at the time.

This reverts two PRs:
* https://github.com/matrix-org/matrix-react-sdk/pull/1620
* https://github.com/matrix-org/matrix-react-sdk/pull/1482

The changes to the context menu positioning were not reverted as they are useful outside of presence management.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-12-25 14:25:13 -07:00
Travis Ralston
5f3fda2950
Update MemberPresenceAvatar.js
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-21 09:01:56 -07:00
Travis Ralston
28ff0a4ee7 Disable presence controls if there's no presence
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-17 22:25:15 -07:00
Richard van der Hoff
4e7fd55fb4 MemberPresenceAvatar: fix null references
avoid assuming that `member` has a `user`
2017-11-17 14:35:33 +00:00