71 lines
2.5 KiB
TypeScript
71 lines
2.5 KiB
TypeScript
/*
|
|
Copyright 2019 New Vector Ltd
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
import React from "react";
|
|
import classNames from "classnames";
|
|
|
|
import SdkConfig from "../../../SdkConfig";
|
|
import AuthPage from "./AuthPage";
|
|
import { _td } from "../../../languageHandler";
|
|
import SettingsStore from "../../../settings/SettingsStore";
|
|
import { UIFeature } from "../../../settings/UIFeature";
|
|
import LanguageSelector from "./LanguageSelector";
|
|
import EmbeddedPage from "../../structures/EmbeddedPage";
|
|
import { MATRIX_LOGO_HTML } from "../../structures/static-page-vars";
|
|
|
|
// translatable strings for Welcome pages
|
|
_td("Sign in with SSO");
|
|
|
|
interface IProps {}
|
|
|
|
export default class Welcome extends React.PureComponent<IProps> {
|
|
public render(): React.ReactNode {
|
|
const pagesConfig = SdkConfig.getObject("embedded_pages");
|
|
let pageUrl: string | undefined;
|
|
if (pagesConfig) {
|
|
pageUrl = pagesConfig.get("welcome_url");
|
|
}
|
|
|
|
const replaceMap: Record<string, string> = {
|
|
"$riot:ssoUrl": "#/start_sso",
|
|
"$riot:casUrl": "#/start_cas",
|
|
"$matrixLogo": MATRIX_LOGO_HTML,
|
|
"[matrix]": MATRIX_LOGO_HTML,
|
|
};
|
|
|
|
if (!pageUrl) {
|
|
// Fall back to default and replace $logoUrl in welcome.html
|
|
const brandingConfig = SdkConfig.getObject("branding");
|
|
const logoUrl = brandingConfig?.get("auth_header_logo_url") ?? "themes/element/img/logos/element-logo.svg";
|
|
replaceMap["$logoUrl"] = logoUrl;
|
|
pageUrl = "welcome.html";
|
|
}
|
|
|
|
return (
|
|
<AuthPage>
|
|
<div
|
|
className={classNames("mx_Welcome", {
|
|
mx_WelcomePage_registrationDisabled: !SettingsStore.getValue(UIFeature.Registration),
|
|
})}
|
|
>
|
|
<EmbeddedPage className="mx_WelcomePage" url={pageUrl} replaceMap={replaceMap} />
|
|
<LanguageSelector />
|
|
</div>
|
|
</AuthPage>
|
|
);
|
|
}
|
|
}
|