prepopulate geneset with genes from modal

This commit is contained in:
Colin Megill
2021-01-28 15:07:31 -08:00
parent 84fcbb8652
commit fec1736820
6 changed files with 55 additions and 15 deletions
@@ -1,3 +1,4 @@
import _ from "lodash";
import React from "react";
import { connect } from "react-redux";
import AnnoDialog from "../../categorical/annoDialog";
@@ -24,6 +25,7 @@ class CreateGenesetDialogue extends React.PureComponent {
const { dispatch } = this.props;
this.setState({
genesetName: "",
genesToPopulateGeneset: "",
});
dispatch({
type: "geneset: disable create geneset mode",
@@ -33,9 +35,13 @@ class CreateGenesetDialogue extends React.PureComponent {
createGeneset = (e) => {
const { dispatch } = this.props;
const { genesetName } = this.state;
const { genesetName, genesToPopulateGeneset } = this.state;
dispatch({ type: "geneset: create", name: genesetName });
dispatch({
type: "geneset: create",
name: genesetName,
genes: _.pull(_.uniq(genesToPopulateGeneset.split(/[ ,]+/)), "") || null,
});
dispatch({
type: "geneset: disable create geneset mode",
});
@@ -51,6 +57,10 @@ class CreateGenesetDialogue extends React.PureComponent {
this.setState({ genesetName: e });
};
handleGenesetInputChange = (e) => {
this.setState({ genesToPopulateGeneset: e });
};
instruction = () => {
return "New, unique geneset";
/* todo genesets */
@@ -80,7 +90,7 @@ class CreateGenesetDialogue extends React.PureComponent {
<LabelInput
onChange={this.handleChange}
inputProps={{
"data-testid": "add-genes",
"data-testid": "create-geneset-modal",
leftIcon: "manually-entered-data",
intent: "none",
autoFocus: true,
@@ -88,6 +98,18 @@ class CreateGenesetDialogue extends React.PureComponent {
newLabelMessage="New geneset"
/>
}
secondaryInstructions="Optionally add a list of comma separated genes to populate the geneset"
secondaryInput={
<LabelInput
onChange={this.handleGenesetInputChange}
inputProps={{
"data-testid": "add-genes",
intent: "none",
autoFocus: false,
}}
newLabelMessage="populate geneset with genes"
/>
}
handleSubmit={this.createGeneset}
handleCancel={this.disableCreateGenesetMode}
/>