import React from "react"; import lbry from "lbry"; import { ExpandableModal } from "component/modal"; class ModalError extends React.PureComponent { render() { const { modal, closeModal, error } = this.props; const errorObj = typeof error === "string" ? { error: error } : error; const error_key_labels = { connectionString: __("API connection string"), method: __("Method"), params: __("Parameters"), code: __("Error code"), message: __("Error message"), data: __("Error data"), }; const errorInfoList = []; for (let key of Object.keys(error)) { let val = typeof error[key] == "string" ? error[key] : JSON.stringify(error[key]); let label = error_key_labels[key]; errorInfoList.push( <li key={key}><strong>{label}</strong>: <code>{val}</code></li> ); } const errorInfo = ( <ul className="error-modal__error-list">{errorInfoList}</ul> ); return ( <ExpandableModal isOpen={modal == "error"} contentLabel={__("Error")} className="error-modal" overlayClassName="error-modal-overlay" onConfirmed={closeModal} extraContent={errorInfo} > <h3 className="modal__header">{__("Error")}</h3> <div className="error-modal__content"> <div> <img className="error-modal__warning-symbol" src={lbry.imagePath("warning.png")} /> </div> <p> {__( "We're sorry that LBRY has encountered an error. This has been reported and we will investigate the problem." )} </p> </div> </ExpandableModal> ); } } export default ModalError;