Use .well-known to discover a default rendezvous server for use with Sign in with QR (#11655)

This commit is contained in:
Hugh Nimmo-Smith 2023-09-28 10:37:44 +01:00 committed by GitHub
parent 0518af70ac
commit 8442f1cf10
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 76 additions and 6 deletions

View file

@ -20,6 +20,7 @@ import {
IServerVersions,
UNSTABLE_MSC3882_CAPABILITY,
Capabilities,
IClientWellKnown,
} from "matrix-js-sdk/src/matrix";
import { _t } from "../../../../languageHandler";
@ -30,6 +31,7 @@ interface IProps {
onShowQr: () => void;
versions?: IServerVersions;
capabilities?: Capabilities;
wellKnown?: IClientWellKnown;
}
export default class LoginWithQRSection extends React.Component<IProps> {
@ -43,7 +45,9 @@ export default class LoginWithQRSection extends React.Component<IProps> {
const capability = UNSTABLE_MSC3882_CAPABILITY.findIn<IMSC3882GetLoginTokenCapability>(this.props.capabilities);
const msc3882Supported =
!!this.props.versions?.unstable_features?.["org.matrix.msc3882"] || !!capability?.enabled;
const msc3886Supported = !!this.props.versions?.unstable_features?.["org.matrix.msc3886"];
const msc3886Supported =
!!this.props.versions?.unstable_features?.["org.matrix.msc3886"] ||
this.props.wellKnown?.["io.element.rendezvous"]?.server;
const offerShowQr = msc3882Supported && msc3886Supported;
// don't show anything if no method is available