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.
This commit is contained in:
Travis Ralston 2020-05-13 21:03:12 -06:00
parent a3b4c2dfa0
commit a5f3318f3b
14 changed files with 88 additions and 30 deletions

View file

@ -32,7 +32,7 @@ export class MatrixDispatcher extends Dispatcher<ActionPayload> {
* an operation that the browser requires user interaction
* for. Default false (async).
*/
dispatch(payload: ActionPayload, sync = false) {
dispatch<T extends ActionPayload>(payload: T, sync = false) {
if (payload instanceof AsyncActionPayload) {
payload.fn((action: ActionPayload) => {
this.dispatch(action, sync);