diff --git a/src/components/structures/EmbeddedPage.js b/src/components/structures/EmbeddedPage.js
index f854dc955f..a0a95ac6f1 100644
--- a/src/components/structures/EmbeddedPage.js
+++ b/src/components/structures/EmbeddedPage.js
@@ -37,6 +37,8 @@ export default class EmbeddedPage extends React.PureComponent {
className: PropTypes.string,
// Whether to wrap the page in a scrollbar
scrollbar: PropTypes.bool,
+ // Map of keys to replace with values, e.g {$placeholder: "value"}
+ replaceMap: PropTypes.object,
};
static contextType = MatrixClientContext;
@@ -81,6 +83,13 @@ export default class EmbeddedPage extends React.PureComponent {
}
body = body.replace(/_t\(['"]([\s\S]*?)['"]\)/mg, (match, g1)=>this.translate(g1));
+
+ if (this.props.replaceMap) {
+ Object.keys(this.props.replaceMap).forEach(key => {
+ body = body.split(key).join(this.props.replaceMap[key]);
+ });
+ }
+
this.setState({ page: body });
},
);
diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js
index 9d17cd8647..258972d18d 100644
--- a/src/components/structures/MatrixChat.js
+++ b/src/components/structures/MatrixChat.js
@@ -2022,7 +2022,7 @@ export default createReactClass({
}
} else if (this.state.view === VIEWS.WELCOME) {
const Welcome = sdk.getComponent('auth.Welcome');
- view = ;
+ view = ;
} else if (this.state.view === VIEWS.REGISTER) {
const Registration = sdk.getComponent('structures.auth.Registration');
view = (
diff --git a/src/components/views/auth/Welcome.js b/src/components/views/auth/Welcome.js
index 58f117ea36..7cbcf65d3c 100644
--- a/src/components/views/auth/Welcome.js
+++ b/src/components/views/auth/Welcome.js
@@ -18,6 +18,12 @@ import React from 'react';
import * as sdk from '../../../index';
import SdkConfig from '../../../SdkConfig';
import AuthPage from "./AuthPage";
+import * as Matrix from "matrix-js-sdk";
+import {_td} from "../../../languageHandler";
+import PlatformPeg from "../../../PlatformPeg";
+
+// translatable strings for Welcome pages
+_td("Sign in with SSO");
export default class Welcome extends React.PureComponent {
render() {
@@ -33,11 +39,24 @@ export default class Welcome extends React.PureComponent {
pageUrl = 'welcome.html';
}
+ const {hsUrl, isUrl} = this.props.serverConfig;
+ const tmpClient = Matrix.createClient({
+ baseUrl: hsUrl,
+ idBaseUrl: isUrl,
+ });
+ const plaf = PlatformPeg.get();
+ const callbackUrl = plaf.getSSOCallbackUrl(tmpClient.getHomeserverUrl(), tmpClient.getIdentityServerUrl());
+
return (
-
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index f50f8c7954..20ac0c2bb1 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1881,6 +1881,7 @@
"Find other public servers or use a custom server": "Find other public servers or use a custom server",
"Sign in to your Matrix account on %(serverName)s": "Sign in to your Matrix account on %(serverName)s",
"Sign in to your Matrix account on ": "Sign in to your Matrix account on ",
+ "Sign in with SSO": "Sign in with SSO",
"Sorry, your browser is not able to run Riot.": "Sorry, your browser is not able to run Riot.",
"Riot uses many advanced browser features, some of which are not available or experimental in your current browser.": "Riot uses many advanced browser features, some of which are not available or experimental in your current browser.",
"Please install Chrome, Firefox, or Safari for the best experience.": "Please install Chrome, Firefox, or Safari for the best experience.",