@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
19 lines (18 loc) • 1.54 kB
JavaScript
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
import { useState } from 'react';
import { Button, Dialog, DialogActions, DialogContent, DialogTitle, } from '@mui/material';
import ErrorMessage from "./ErrorMessage.js";
import FactoryResetDialog from "./FactoryResetDialog.js";
const ResetComponent = ({ onFactoryReset, resetButtonText, }) => {
const [dialogOpen, setDialogOpen] = useState(false);
return (_jsxs(_Fragment, { children: [_jsx(Button, { "data-testid": "fatal-error", color: "primary", variant: "contained", onClick: () => {
setDialogOpen(true);
}, children: resetButtonText }), _jsx(FactoryResetDialog, { onClose: () => {
setDialogOpen(false);
}, open: dialogOpen, onFactoryReset: onFactoryReset })] }));
};
export default function FatalErrorDialog({ componentStack, error = 'No error message provided', onFactoryReset, resetButtonText = 'Factory Reset', }) {
return (_jsxs(Dialog, { maxWidth: "xl", open: true, children: [_jsx(DialogTitle, { children: "Fatal error" }), _jsxs(DialogContent, { children: [_jsx(ErrorMessage, { error: error }), _jsx("pre", { children: componentStack })] }), _jsxs(DialogActions, { children: [_jsx(Button, { color: "secondary", variant: "contained", onClick: () => {
window.location.reload();
}, children: "Refresh" }), _jsx(ResetComponent, { onFactoryReset: onFactoryReset, resetButtonText: resetButtonText })] })] }));
}