Germain
306a2449e5
Show thread notification if thread timeline is closed ( #9495 )
...
* Show thread notification if thread timeline is closed
* Simplify isViewingEventTimeline statement
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Fix show desktop notifications
* Add RoomViewStore thread id assertions
* Add Notifier tests
* fix lint
* Remove it.only
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-25 16:53:31 +00:00
Germain
be281fd735
Fix threads fallback incorrectly targets root event ( #9229 )
...
* Use RelationType enum instead of hardcoded value
* Fix threads replies fallback to target last reply
* Only unsubscribe from threads events if needed
* fix strict null check
* fix strict null checks
* strict null checks
* fix typing
* Unsubscribe listeners if new thread is `null`
Co-authored-by: Faye Duxovni <fayed@element.io>
* Update strict null checks
* Type HTMLElement as nullable
* Add thread fallback integration test
* lint fix
* Update snapshots
* Add test after changing thread
* Remove test comment
* update snapshot
* fix room context test utility
* Add ThreadListContextMenu test
* lint fix
* fix thread rendering
Co-authored-by: Faye Duxovni <fayed@element.io>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-20 12:48:25 +01:00
kegsay
e946674df3
Store refactor: use non-global stores in components ( #9293 )
...
* Add Stores and StoresContext and use it in MatrixChat and RoomView
Added a new kind of class:
- Add God object `Stores` which will hold refs to all known stores and the `MatrixClient`. This object is NOT a singleton.
- Add `StoresContext` to hold onto a ref of `Stores` for use inside components.
`StoresContext` is created via:
- Create `Stores` in `MatrixChat`, assigning the `MatrixClient` when we have one set. Currently sets the RVS to `RoomViewStore.instance`.
- Wrap `MatrixChat`s `render()` function in a `StoresContext.Provider` so it can be used anywhere.
`StoresContext` is currently only used in `RoomView` via the following changes:
- Remove the HOC, which redundantly set `mxClient` as a prop. We don't need this as `RoomView` was using the client from `this.context`.
- Change the type of context accepted from `MatrixClientContext` to `StoresContext`.
- Modify alllll the places where `this.context` is used to interact with the client and suffix `.client`.
- Modify places where we use `RoomViewStore.instance` and replace them with `this.context.roomViewStore`.
This makes `RoomView` use a non-global instance of RVS.
* Linting
* SDKContext and make client an optional constructor arg
* Move SDKContext to /src/contexts
* Inject all RVS deps
* Linting
* Remove reset calls; deep copy the INITIAL_STATE to avoid test pollution
* DI singletons used in RoomView; DI them in RoomView-test too
* Initial RoomViewStore.instance after all files are imported to avoid cyclical deps
* Lazily init stores to allow for circular dependencies
Rather than stores accepting a list of other stores in their constructors,
which doesn't work when A needs B and B needs A, make new-style stores simply
accept Stores. When a store needs another store, they access it via `Stores`
which then lazily constructs that store if it needs it. This breaks the
circular dependency at constructor time, without needing to introduce
wiring diagrams or any complex DI framework.
* Delete RoomViewStore.instance
Replaced with Stores.instance.roomViewStore
* Linting
* Move OverridableStores to test/TestStores
* Rejig how eager stores get made; don't automatically do it else tests break
* Linting
* Linting and review comments
* Fix new code to use Stores.instance
* s/Stores/SdkContextClass/g
* Update docs
* Remove unused imports
* Update src/stores/RoomViewStore.tsx
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
* Remove empty c'tor to make sonar happy
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-10-19 13:07:03 +01:00
Germain
71cf9bf932
Read receipts for threads ( #9239 )
...
* Use EventType enum instead of hardcoded value
* Enable read receipts on thread timelines
* Strict null checks
* Strict null checks
* fix import group
* strict checks
* strict checks
* null check
* fix tests
2022-09-21 10:13:33 +01:00
Michael Telatynski
4bfb1e7b2f
Make autocomplete pop-up wider in thread view ( #9289 )
...
* Make autocomplete pop-up wider in thread view
* Handle non-narrow mode too
2022-09-16 09:12:28 +00:00
Suguru Hirahara
4b2a922e2e
Remove mx_GroupLayout ( #8876 )
2022-06-25 13:51:07 +02:00
Suguru Hirahara
fe8c267a14
Create a common header on right panel cards on BaseCard ( #8808 )
...
* Remove duplicate declarations and add height and overflow properties
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Move mx_TimelineCard__header under mx_BaseCard_header for normalization
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Normalize mx_BaseCard_close position
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Normalize className of header
- mx_BaseCard_header__ThreadPanel
- mx_BaseCard_header__TimelineCard
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Normalize header's button size
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Normalize inline start header margin
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* normalize header bottom margin for PinnedMessagesCard and TimelineCard
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Normalize header declarations
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Add mixin RightPanelCard
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Move common declarations - top level
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Move common declarations - mx_BaseCard_header
Remove specific declarations on PinnedMessagesCard
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Move common declarations - mx_BaseCard_back and mx_BaseCard_close
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Create a common class name - mx_BaseCard_header_title
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Create a common class name - mx_BaseCard_header_title - ThreadPanel
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Move common declarations - mx_BaseCard_header_title
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Move common declarations - span:first-of-type
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove redundant declarations
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Rename a variable to remove --ThreadPanel_header-button-size
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove class name - mx_BaseCard_header_title
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove mx_BaseCard_header_title--ThreadPanel and h2 declarations from PinnedMessagesCard
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Headers need Heading
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Use spacing variables
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Move common style rules of mx_ContextualMenu inside mx_BaseCard_header_title to BaseCard
leaving style rules specific to ThreadPanel.
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Hide long header title with ellipsis
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Merge style rules - BaseCard_header-button-size
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Merge style rules - BaseCard_header margin-bottom
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Merge style rules - BaseCard back and close margin
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Merge style rules - BaseCard back ~ mx_BaseCard_header_title
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Merge style rules - mx_BaseCard_header_title
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Return special declarations to _ThreadPanel.scss
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove the mixin
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Add mx_BaseCard_header_title_button--option
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove redundant margin from AppTileFullWidth
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Header on mx_RoomSummaryCard - remove default declarations
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Remove default declarations from mx_UserInfo
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
* Use variables - _BaseCard.scss
Signed-off-by: Suguru Hirahara <luixxiul@users.noreply.github.com>
2022-06-16 09:22:45 +02:00
Michael Telatynski
b4d657b21f
Fix emoji picker for editing thread responses ( #8671 )
2022-05-23 16:07:17 +01:00
Michael Telatynski
83b3dfa341
Add logs to try debug issue with thread view ( #8628 )
...
* Tidy up
* Add logs to try debug issue with thread view
2022-05-17 10:38:24 -04:00
Michael Telatynski
fd6498a821
Add loading spinners to threads panels ( #8490 )
2022-05-04 13:37:19 +00:00
Michael Telatynski
f29ef04751
Fix race conditions around threads ( #8448 )
2022-05-03 14:25:08 +01:00
Janne Mareike Koschinski
579a166113
Fix: Remove jittery timeline scrolling after jumping to an event ( #8263 )
...
* Fix: Remove jittery timeline scrolling after jumping to an event
* Fix: Remove onUserScroll handler and merge it with onScroll
* Fix: Reset scrollIntoView state earlier
Co-authored-by: Janne Mareike Koschinski <jannemk@element.io>
2022-04-08 20:48:57 +02:00
Travis Ralston
59364ec177
Post-merge fixes
2022-03-31 19:32:49 -06:00
Travis Ralston
97efdf7094
Merge branch 'develop' into travis/remove-skinning
2022-03-31 19:25:43 -06:00
Germain
31cd7edd33
Reset room event_id fragment when ThreadView unmounts ( #8186 )
2022-03-30 14:20:20 +01:00
Travis Ralston
997d6d40bf
Step 1: Remove all usage of @replaceableComponent
2022-03-28 14:02:31 -06:00
J. Ryan Stinnett
c4428a804c
Merge pull request from GHSA-qmf4-7w7j-vf23
2022-03-15 14:08:34 +00:00
Germain
2acc8fd18b
Implement is_falling_back in accordance to MSC3440 ( #8055 )
2022-03-15 13:52:37 +00:00
Germain
21d3cb08a9
Switch to using stable values for threads ( #8019 )
2022-03-11 09:04:22 +00:00
Germain
246d6757ab
Fix missing threads in thread list ( #8011 )
...
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-03-10 16:44:50 +00:00
Germain
c7dfaa8f64
fix thread fallback targeting only thread relations ( #8006 )
2022-03-09 11:34:38 +00:00
Germain
6174b13142
Add thread root to timelime when starting a new thread ( #7983 )
2022-03-04 15:56:28 +00:00
Germain
84bd136657
Fix destructuring when threads has no server support ( #7976 )
2022-03-04 11:10:45 +00:00
Germain
acd12c38a9
Fix threads timeline message ordering ( #7968 )
2022-03-03 15:22:16 +00:00
Germain
d01ea1824b
[Update thread info after MSC3440 updates] ( #7911 )
2022-03-02 10:52:14 +00:00
Michael Telatynski
7a32a68a0b
Fix right panel soft crashes due to missing room prop ( #7923 )
2022-03-01 11:15:23 +00:00
Michael Telatynski
75e41b4c1c
Basic threads analytics into Posthog MVP ( #7871 )
2022-02-28 14:11:14 +00:00
J. Ryan Stinnett
d8ac7cf202
Fix thread summary layout for narrow right panel timeline ( #7838 )
2022-02-23 14:03:46 +00:00
Michael Telatynski
7fa01ffb06
Improve typing around event emitter handlers ( #7816 )
2022-02-22 12:18:08 +00:00
Michael Telatynski
8fccef86d8
Wire up drag-drop file uploads for the thread view ( #7860 )
2022-02-22 11:14:56 +00:00
Michael Telatynski
5f5bb4a4fe
Consolidate TileShape into TimelineRenderingType ( #7843 )
2022-02-18 15:56:05 +00:00
Michael Telatynski
658590e5bc
More posthog tracking around joining rooms and room search ( #7807 )
2022-02-17 18:03:27 +00:00
Germain
15a9303d29
Improve thread partitioning for 2nd degree relations ( #7748 )
2022-02-10 15:18:55 +00:00
Michael Telatynski
0d6ef76605
Add analytics for the ViewRoom action ( #7666 )
2022-02-10 14:29:55 +00:00
Germain
0e36f91d76
Use updated createThread method ( #7670 )
2022-02-01 08:58:45 +00:00
Germain
038f67e844
Improved threads stability ( #7639 )
...
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-01-26 14:11:09 +00:00
Germain
ecd5be8a8f
Update lastReply to filter out local event ID from thread fallback ( #7620 )
2022-01-25 10:51:17 +00:00
Germain
ec6bb88068
Fix reply chain fallback for first event in a thread ( #7580 )
2022-01-19 13:37:19 +00:00
Germain
41b9e4aa4f
Implement reply chain fallback for threads backwards compatibility ( #7565 )
2022-01-19 09:06:48 +00:00
Germain
240cb10415
Refresh ThreadView after React state has been updated ( #7539 )
2022-01-14 12:49:25 +00:00
Michael Telatynski
f5465b37a9
Allow bubble layout in Thread View ( #7478 )
2022-01-12 09:02:30 +00:00
Timo
4ab3470184
History based navigation with new right panel store ( #7398 )
...
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2022-01-05 17:25:41 +01:00
Timo
325e2ba99b
Right panel store refactor ( #7313 )
...
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2022-01-05 16:14:44 +01:00
Germain
fdc6082c83
Make threads events indexed by the index manager ( #7442 )
2021-12-23 10:12:27 +00:00
Aaron Raimist
7b94e13a84
Merge branch 'develop' into sort-imports
...
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-12-09 08:34:20 +00:00
Germain
38e5e94ee4
Threads notifications after app startup ( #7253 )
2021-12-07 12:51:34 +00:00
Germain
3d4ece02e8
Send read receipts for events in thread's timeline ( #7229 )
2021-12-01 15:45:31 +00:00
Timo
82ae39435c
Only show core navigation elements (call/chat/notification/info) when a widget is maximised ( #7114 )
...
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-11-29 19:01:47 +01:00
Timo
4cbed99de3
Add right panel chat timeline ( #7112 )
...
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-11-29 17:06:15 +01:00
Renan Cleyson
ae0dba4e87
Add view_room
to Action
enum ( #7203 )
...
* Add ViewRoom action to Action enum
Signed-off-by: Renan <renancleyson.f@gmail.com>
* Change view_room occurrences to Action.ViewRoom
Signed-off-by: Renan <renancleyson.f@gmail.com>
* Add missing Action import
2021-11-25 21:49:43 +01:00