Commit Graph

21 Commits (c557162592a38e99bf907a48f89d87eda4ca7d93)

Author SHA1 Message Date
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
Justin Carlson 6585fb1f55
Add actions for integration manager to send and read certain events (#9740)
* Add send_event action

* Add read_events action

* Add e2e tests for send_event

* Allow more event types to be read

* Fix error message

* Add e2e tests for read_events

* Run i18n

* Improve error messages

* Fix types

* Remove unused test helpers

* Fix more type errors

* Run prettier

* Fix more type errors

* Fix validation

Since typeof null is "object"

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-12-20 14:13:37 -07:00
Michael Weimann 526645c791
Apply prettier formatting 2022-12-12 12:24:14 +01:00
Justin Carlson 8e42497e81
Fix integration manager `get_open_id_token` action and add E2E tests (#9520)
* Fix missing await

* Fix get openID token action requiring room ID and user ID

* Add e2e test for integration manager get openID token

* Remove outdated comment

* Update test description

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>

* Fix type

* Fix types again

Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-11-15 10:03:47 -07: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
Justin Carlson 348a006c6b
Allow integration managers to remove users (#9211)
* Add kick action to Scalar Messaging API

* Fix docs

* Fix membership check

* Update style

* Update i18n

* Add e2e tests

* Fix test flakiness

* Fix variable type

* Check for when bot has joined

* Add missing semicolon

* Not a real token

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Improve test description

Co-authored-by: Travis Ralston <travpc@gmail.com>

* Look for room kick message instead of checking room state

* Expand event summaries before checking for message

Co-authored-by: Travis Ralston <travisr@matrix.org>
Co-authored-by: Travis Ralston <travpc@gmail.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
2022-09-13 08:59:04 -06:00
Šimon Brandner 19e514d83c
Remove dead code (#9035) 2022-07-11 07:52:44 +02:00
Will Hunt 4faacdaec0
Allow integration managers to validate user identity after opening (#8782)
* Add getOpenIdToken function

* tidy up

* tidy up

* log an error

Co-authored-by: Travis Ralston <travisr@matrix.org>
2022-06-16 17:19:04 -06:00
Oliver Sand f7ba3f07cd
Support avatar_url in the scalar client API (#8550)
* Support avatar_url in the scalar client API

Signed-off-by: Oliver Sand <oliver.sand@nordeck.net>

* Fix return type

* Remove automatic upload

* Remove return type

* Fix indention
2022-05-19 16:22:38 -06:00
Travis Ralston d5ed1eb66e Step 8.3: Convert `RoomViewStore` to a more modern singleton for imports 2022-03-28 14:02:31 -06:00
bink 6eea416e7e
Fix room_id check when adding user widgets (#7448) 2022-01-05 09:54:38 +00:00
Will Hunt 785eb5fa15
No-op action:join if the user is already invited for scalar (#7334)
* No-op action:join if the user is already invited for scalar

* Improve words
2021-12-10 14:26:38 +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
Will Hunt 11aa362eda
Fix setBotPower to not use `.content` (#7179)
* Fix setBotPower to not use `.content`

* Simplify currentPl
2021-12-01 17:23:26 +00:00
Faye Duxovni d61a83a7b9
Remove all directional quotation marks in the codebase (#7059) 2021-10-29 21:59:21 -04:00
Aaron Raimist bdc56be863
Auto fix
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-10-22 17:23:37 -05:00
Dariusz Niemczyk 5290afcc4c Replace console.warn with logger.warn
Related https://github.com/vector-im/element-web/issues/18425
2021-10-18 14:08:23 +02:00
Dariusz Niemczyk 5e73a212f4 Replace console.error with logger.error
Related https://github.com/vector-im/element-web/issues/18425
2021-10-18 14:08:23 +02:00
Will Hunt 88410a1b29 Make function async 2021-10-06 17:00:54 +01:00
Will Hunt 3f6f2bcbb3 no-op a setBotPower request from the integration manager when the PL is equal to or greater to the requested PL
When configured
2021-10-06 16:48:17 +01:00
Šimon Brandner f12b142311
Convert ScalarMessaging to TS
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-09-27 18:40:02 +02:00