@jbrowse/plugin-wiggle
Version:
JBrowse 2 wiggle adapters, tracks, etc.
25 lines (24 loc) • 1.77 kB
JavaScript
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;