UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

19 lines (18 loc) 1.54 kB
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 })] })] })); }