extract app load error handler from app.js

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/13095/head
Michael Telatynski 2020-04-09 10:32:04 +01:00
parent 343d4ea641
commit 0572d62c88
2 changed files with 21 additions and 28 deletions

View File

@ -151,33 +151,21 @@ export async function loadApp(fragParams: {}) {
platform.startUpdater(); platform.startUpdater();
try { // Don't bother loading the app until the config is verified
// Don't bother loading the app until the config is verified const config = await verifyServerConfig();
const config = await verifyServerConfig(); const MatrixChat = sdk.getComponent('structures.MatrixChat');
const MatrixChat = sdk.getComponent('structures.MatrixChat'); return <MatrixChat
return <MatrixChat onNewScreen={onNewScreen}
onNewScreen={onNewScreen} makeRegistrationUrl={makeRegistrationUrl}
makeRegistrationUrl={makeRegistrationUrl} ConferenceHandler={VectorConferenceHandler}
ConferenceHandler={VectorConferenceHandler} config={config}
config={config} realQueryParams={params}
realQueryParams={params} startingFragmentQueryParams={fragParams}
startingFragmentQueryParams={fragParams} enableGuest={!config.disable_guests}
enableGuest={!config.disable_guests} onTokenLoginCompleted={onTokenLoginCompleted}
onTokenLoginCompleted={onTokenLoginCompleted} initialScreenAfterLogin={getScreenFromLocation(window.location)}
initialScreenAfterLogin={getScreenFromLocation(window.location)} defaultDeviceDisplayName={platform.getDefaultDeviceDisplayName()}
defaultDeviceDisplayName={platform.getDefaultDeviceDisplayName()} />;
/>;
} catch (err) {
console.error(err);
let errorMessage = err.translatedMessage
|| _t("Unexpected error preparing the app. See console for details.");
errorMessage = <span>{errorMessage}</span>;
// Like the compatibility page, AWOOOOOGA at the user
const GenericErrorPage = sdk.getComponent("structures.GenericErrorPage");
return <GenericErrorPage message={errorMessage} title={_t("Your Riot is misconfigured")} />;
}
} }
async function verifyServerConfig() { async function verifyServerConfig() {

View File

@ -21,6 +21,8 @@ limitations under the License.
// Require common CSS here; this will make webpack process it into bundle.css. // Require common CSS here; this will make webpack process it into bundle.css.
// Our own CSS (which is themed) is imported via separate webpack entry points // Our own CSS (which is themed) is imported via separate webpack entry points
// in webpack.config.js // in webpack.config.js
import React from "react";
require('gfm.css/gfm.css'); require('gfm.css/gfm.css');
require('highlight.js/styles/github.css'); require('highlight.js/styles/github.css');
@ -192,7 +194,10 @@ async function start() {
await loadApp(fragparts.params); await loadApp(fragparts.params);
} catch (err) { } catch (err) {
console.error(err); console.error(err);
await showError(err); // Like the compatibility page, AWOOOOOGA at the user
await showError(_t("Your Riot is misconfigured"), [
err.translatedMessage || _t("Unexpected error preparing the app. See console for details."),
]);
} }
} }
start().catch(err => { start().catch(err => {