@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
46 lines (45 loc) • 3.38 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
import { useState } from 'react';
import DraggableDialog from '@jbrowse/core/ui/DraggableDialog';
import { useLocalStorage } from '@jbrowse/core/util';
import { Button, DialogActions, DialogContent } from '@mui/material';
import { makeStyles } from 'tss-react/mui';
import SetColorDialogBulkEditPanel from './SetColorDialogBulkEditPanel';
import SetColorDialogHelpfulTips from './SetColorDialogHelpfulTips';
import SetColorDialogRowPalettizer from './SetColorDialogRowPalettizer';
const useStyles = makeStyles()({
content: {
minWidth: 800,
},
fr: {
float: 'right',
display: 'flex',
gap: 8,
},
});
export default function SetColorDialog({ model, handleClose, title = 'Color/arrangement editor', enableBulkEdit = false, enableRowPalettizer = false, showTipsStorageKey = 'setColorDialog-showTips', SourcesGridComponent, }) {
const { classes } = useStyles();
const { sources } = model;
const [showBulkEditor, setShowBulkEditor] = useState(false);
const [currLayout, setCurrLayout] = useState(structuredClone(sources || []));
const [showTips, setShowTips] = useLocalStorage(showTipsStorageKey, false);
return (_jsx(DraggableDialog, { open: true, onClose: handleClose, maxWidth: "xl", title: title, children: showBulkEditor && enableBulkEdit ? (_jsx(SetColorDialogBulkEditPanel, { currLayout: currLayout, onClose: arg => {
if (arg) {
setCurrLayout(arg);
}
setShowBulkEditor(false);
} })) : (_jsxs(_Fragment, { children: [_jsxs(DialogContent, { className: classes.content, children: [_jsxs("div", { className: classes.fr, children: [_jsx(Button, { variant: "contained", onClick: () => {
setShowTips(!showTips);
}, children: showTips ? 'Hide tips' : 'Show tips' }), enableBulkEdit ? (_jsx(Button, { color: "secondary", variant: "contained", onClick: () => {
setShowBulkEditor(!showBulkEditor);
}, children: "Show Bulk row editor" })) : null] }), showTips ? _jsx(SetColorDialogHelpfulTips, {}) : null, enableRowPalettizer ? (_jsxs(_Fragment, { children: [_jsx("br", {}), _jsx(SetColorDialogRowPalettizer, { currLayout: currLayout, setCurrLayout: setCurrLayout })] })) : null, _jsx(SourcesGridComponent, { rows: currLayout, onChange: setCurrLayout, showTips: showTips })] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", type: "submit", color: "inherit", onClick: () => {
model.clearLayout();
setCurrLayout(model.sources || []);
}, children: "Clear custom settings" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
handleClose();
setCurrLayout([...(model.sources || [])]);
}, children: "Cancel" }), _jsx(Button, { variant: "contained", color: "primary", type: "submit", onClick: () => {
model.setLayout(currLayout);
handleClose();
}, children: "Submit" })] })] })) }));
}