Turns out a lot of the typescript warnings about improper warnings were correct. TypeScript appears to be pulling in two copies of the js-sdk when we do this, which can lead to type conflicts (or worse: the wrong code entirely). We fix this at the webpack level by explicitly importing from `src`, but some alternative build structures have broken tests because of this - jest ends up pulling in the "wrong" js-sdk, breaking things.
This adds a prompt whenever we are about to perform some action on a default identity
server (from homeserver .well-known or Riot app config) without terms. This
allows the user to abort or trust the server (storing it in account data).
Fixes https://github.com/vector-im/riot-web/issues/10557
This changes the 3PID state gathering (used in Settings) to ignore terms errors
(no modals will be shown) on the assumption that other UX handles this case.
This invokes the terms modal flow when inviting someone by email. Entering an
email triggers a lookup to the IS, and if it has terms you need to agree to,
then a separate modal is shown to complete this activity. You then come back to
invite screen after agreeing to the terms.
Fixes https://github.com/vector-im/riot-web/issues/10093