/* Copyright 2024 New Vector Ltd. Copyright 2020 The Matrix.org Foundation C.I.C. Copyright 2018 New Vector Ltd Copyright 2017 Vector Creations Ltd SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE files in the repository root for full details. */ import React from "react"; import SdkConfig from "../../../SdkConfig"; import Modal from "../../../Modal"; import { _t } from "../../../languageHandler"; import QuestionDialog from "./QuestionDialog"; import BugReportDialog from "./BugReportDialog"; import BaseDialog from "./BaseDialog"; import DialogButtons from "../elements/DialogButtons"; interface IProps { error: unknown; onFinished(clear?: boolean): void; } export default class SessionRestoreErrorDialog extends React.Component { private sendBugReport = (): void => { Modal.createDialog(BugReportDialog, { error: this.props.error, }); }; private onClearStorageClick = (): void => { Modal.createDialog(QuestionDialog, { title: _t("action|sign_out"), description:
{_t("error|session_restore|clear_storage_description")}
, button: _t("action|sign_out"), danger: true, onFinished: this.props.onFinished, }); }; private onRefreshClick = (): void => { // Is this likely to help? Probably not, but giving only one button // that clears your storage seems awful. window.location.reload(); }; public render(): React.ReactNode { const brand = SdkConfig.get().brand; const clearStorageButton = ( ); let dialogButtons; if (SdkConfig.get().bug_report_endpoint_url) { dialogButtons = ( {clearStorageButton} ); } else { dialogButtons = ( {clearStorageButton} ); } return (

{_t("error|session_restore|description_1")}

{_t("error|session_restore|description_2", { brand })}

{_t("error|session_restore|description_3")}

{dialogButtons}
); } }