Commit graph

51 commits

Author SHA1 Message Date
Michael Telatynski
61a63e47f4
Comply with noImplicitAny (#9940)
* Stash noImplicitAny work

* Stash

* Fix imports

* Iterate

* Fix tests

* Delint

* Fix tests
2023-02-13 11:39:16 +00:00
Michael Telatynski
2bde31dcff
Switch to linkify-react for element Linkification as it handles React subtrees without exploding (#10060
* Switch to linkify-react instead of our faulty implementation

Fixes a series of soft crashes where errors include "The node to be removed is not a child of this node."

* Improve types

* Fix types

* Update snapshots

* Add test

* Fix test
2023-02-03 08:59:21 +00:00
Johannes Marbach
7788d50b02 Add tests 2023-01-27 20:20:01 +01:00
Johannes Marbach
0d0d7a3e2c Try to appease the linter 2023-01-27 15:25:10 +01:00
Johannes Marbach
c557162592 Try to appease the linter 2023-01-27 15:14:20 +01:00
Johannes Marbach
e0e149be3d Ensure room is actually in space hierarchy when resolving its latest version
Relates to: vector-im/element-web#24329
2023-01-27 14:59:15 +01:00
Michael Telatynski
030b7e90bf
Enable @typescript-eslint/explicit-function-return-type in /src (#9788)
* Enable `@typescript-eslint/explicit-member-accessibility` on /src

* Prettier

* Enable `@typescript-eslint/explicit-function-return-type` in /src

* Fix types

* tsc strict fixes

* Delint

* Fix test

* Fix bad merge
2023-01-12 13:25:14 +00:00
Michael Weimann
526645c791
Apply prettier formatting 2022-12-12 12:24:14 +01:00
Germain
40cbee60db
Consolidate public room search experience (#9605) 2022-11-22 15:05:09 +00:00
Michael Telatynski
3747464b41
Make SonarCloud happier (#9545)
* Make SonarCloud happier

* i18n

* Iterate

* Update AddExistingToSpaceDialog.tsx

* Update SlashCommands.tsx
2022-11-07 13:45:34 +00: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
Michael Telatynski
9050ae4bb7
Fix possible soft crash from a race condition in space hierarchies (#9254)
* Fix possible soft crash from a race condition in space hierarchies

* Improve typing
2022-09-08 08:17:55 +00:00
Michael Telatynski
d0d91599a9
Fix soft crash around space hierarchy changing between spaces (#9191) 2022-08-16 14:39:10 +00:00
Johannes Marbach
0d100cbbce
Render HTML topics in rooms on space home (#8939)
* Render HTML topics in rooms on space home

Signed-off-by: Johannes Marbach <johannesm@element.io>

* Add type annotations

Signed-off-by: Johannes Marbach <johannesm@element.io>

* Remove superfluous conditional check

Signed-off-by: Johannes Marbach <johannesm@element.io>
2022-07-01 15:01:18 -04:00
Michael Telatynski
f3f14afbbf
Move spaces tests from Puppeteer to Cypress (#8645)
* Move spaces tests from Puppeteer to Cypress

* Add missing fixture

* Tweak synapsedocker to not double error on a docker failure

* Fix space hierarchy loading race condition

Fixes https://github.com/matrix-org/element-web-rageshakes/issues/10345

* Fix race condition when creating public space with url update code

* Try Electron once more due to perms issues around clipboard

* Try set browser permissions properly

* Try to enable clipboard another way

* Try electron again

* Try electron again again

* Switch to built-in cypress feature for file uploads

* Mock clipboard instead

* TMPDIR ftw?

* uid:gid pls

* Clipboard tests can now run on any browser due to mocking

* Test Enter as well as button for space creation

* Make the test actually work

* Update cypress/support/util.ts

Co-authored-by: Eric Eastwood <erice@element.io>

Co-authored-by: Eric Eastwood <erice@element.io>
2022-05-26 10:19:00 +01:00
Michael Weimann
7ed3089434 Improve tooltip positioning
Signed-off-by: Michael Weimann <michaelw@matrix.org>
2022-05-12 14:05:55 +02:00
Michael Telatynski
964c60d086
Apply corrections identified by SonarQube (#8457) 2022-05-03 22:04:37 +01:00
Travis Ralston
d5ed1eb66e Step 8.3: Convert RoomViewStore to a more modern singleton for imports 2022-03-28 14:02:31 -06:00
Suguru Hirahara
d92977df9e
Make rooms and spaces list responsive (#8088) 2022-03-24 08:50:02 +00:00
Suguru Hirahara
ed6a371616
Fix buttons alignment of Space list header (#8047) 2022-03-14 09:07:36 +00:00
Šimon Brandner
df591ee835
Make everything use the KeyBindingManager (#7907) 2022-02-28 16:05:52 +00:00
Michael Telatynski
e762a6947d
Fix bug with useRoomHierarchy tight-looping loadMore on error (#7893) 2022-02-24 22:52:04 +00:00
Michael Telatynski
c257bc3f7a
Prefer RoomStateEvent.Update where possible as it fires far less (#7878) 2022-02-24 14:39:25 +00:00
Michael Telatynski
658590e5bc
More posthog tracking around joining rooms and room search (#7807) 2022-02-17 18:03:27 +00:00
Michael Telatynski
0d6ef76605
Add analytics for the ViewRoom action (#7666) 2022-02-10 14:29:55 +00:00
Michael Telatynski
30e80aa87d
Null guard space hierarchy (#7729) 2022-02-07 13:48:35 +00:00
Michael Telatynski
ec6c1b8272
Fix RoomViewStore forgetting some details of a view room call (#7512) 2022-01-12 13:12:28 -07:00
Michael Telatynski
f389324571
Show error if could not load space hierarchy (#7399) 2021-12-17 10:36:52 +00:00
Michael Telatynski
a057ec18ca
Don't keep spinning if joining space child failed (#7129) 2021-11-12 15:45:14 +00:00
Michael Telatynski
5ad3261cb2
Implement more meta-spaces (#7077) 2021-11-11 13:07:41 +00:00
Michael Telatynski
27e16362b6
Make join button on space hierarchy action in the background (#7041) 2021-10-27 15:24:31 +01:00
Michael Telatynski
be0fa6da7b
Fix removing a room from a Space and interaction with m.space.parent (#6944) 2021-10-25 14:06:00 +01:00
Michael Telatynski
ead2a5152f
Add decoration to space hierarchy for tiles which have already been j… (#6969) 2021-10-25 11:40:06 +01:00
Michael Telatynski
5dfe53920c Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/19246 2021-10-07 13:20:06 +01:00
Michael Telatynski
e470d7d030 Make use of MatrixClient::getRoomUpgradeHistory 2021-10-07 13:19:51 +01:00
Michael Telatynski
79f3348986 Simplify and improve useRoomHierarchy hook 2021-10-06 10:27:16 +01:00
Michael Telatynski
fa800796c7 Respect tombstones in locally known rooms for Space children 2021-10-06 09:41:57 +01:00
Michael Telatynski
7f63f496be delint 2021-09-28 14:03:41 +01:00
Michael Telatynski
ce0f16d58b Fix pagination when filtering space hierarchy 2021-09-28 13:52:30 +01:00
Michael Telatynski
af42a31794 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/19064 2021-09-17 10:22:57 +01:00
Michael Telatynski
68768002bb use more generic room type instead of boolean flag 2021-09-17 10:19:30 +01:00
Michael Telatynski
1e91191fa2 Fix missing null guard in space hierarchy pagination 2021-09-16 14:28:55 +01:00
Michael Telatynski
28bc8010a7 Say Joining space instead of Joining room where we know its a space 2021-09-16 11:20:01 +01:00
Michael Telatynski
5048e41e8b Space Hierarchy react to known local rooms changing names 2021-09-14 14:41:51 +01:00
Michael Telatynski
85b1f166e8 post-merge tidy up 2021-08-12 12:03:14 +01:00
Michael Telatynski
0a209afdc2 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/fix/18089
 Conflicts:
	res/css/structures/_SpaceHierarchy.scss
	src/components/structures/SpaceHierarchy.tsx
	src/i18n/strings/en_EN.json
2021-08-12 11:41:03 +01:00
Michael Telatynski
38645d9054 Fix loading state issues for spaces pagination 2021-08-11 17:07:53 +01:00
Michael Telatynski
d74e9c4f90 Remove impossible space hierarchy size string 2021-08-11 16:47:14 +01:00
Michael Telatynski
1c2dc13fa3 factor our observer hook 2021-07-30 12:12:49 +01:00
Michael Telatynski
f4ed9aeef1 Add pagination mechanism to SpaceHierarchy based on IntersectionObserver 2021-07-30 11:02:22 +01:00