UNPKG

@jbrowse/plugin-wiggle

Version:

JBrowse 2 wiggle adapters, tracks, etc.

25 lines (24 loc) 1.77 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useState } from 'react'; import { Dialog } from '@jbrowse/core/ui'; import { FormControlLabel, Radio, RadioGroup } from '@mui/material'; import { observer } from 'mobx-react'; import WiggleClusterDialogAuto from './WiggleClusterDialogAuto'; import WiggleClusterDialogManual from './WiggleClusterDialogManual'; function Header({ activeMode, setActiveMode, }) { return (_jsx("div", { children: _jsx(RadioGroup, { children: Object.entries({ auto: (_jsx("div", { children: "Run in-app clustering (slower, particularly for large numbers of samples, uses JS implementation of hclust)" })), manual: (_jsx("div", { children: "Download R script to run clustering (faster, uses R implementation of hclust)" })), }).map(([key, val]) => (_jsx(FormControlLabel, { control: _jsx(Radio, { checked: activeMode === key, onChange: () => { setActiveMode(key); } }), label: val }, key))) }) })); } const WiggleClusterDialog = observer(function ({ model, handleClose, }) { const [activeMode, setActiveMode] = useState('auto'); return (_jsx(Dialog, { open: true, title: "Cluster by score", maxWidth: "xl", onClose: (_, reason) => { if (reason !== 'backdropClick') { handleClose(); } }, children: activeMode === 'auto' ? (_jsx(WiggleClusterDialogAuto, { model: model, handleClose: handleClose, children: _jsx(Header, { activeMode: activeMode, setActiveMode: setActiveMode }) })) : (_jsx(WiggleClusterDialogManual, { model: model, handleClose: handleClose, children: _jsx(Header, { activeMode: activeMode, setActiveMode: setActiveMode }) })) })); }); export default WiggleClusterDialog;