UNPKG

@jbrowse/plugin-wiggle

Version:

JBrowse 2 wiggle adapters, tracks, etc.

46 lines (45 loc) 3.38 kB
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" })] })] })) })); }