mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-08 14:38:12 +08:00
add gene modals
This commit is contained in:
@@ -35,8 +35,6 @@ class GeneExpression extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(differential.diffExp);
|
|
||||||
|
|
||||||
return differential.diffExp ? (
|
return differential.diffExp ? (
|
||||||
<GeneSet
|
<GeneSet
|
||||||
key="Temp DiffExp Set"
|
key="Temp DiffExp Set"
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { connect } from "react-redux";
|
||||||
|
import AnnoDialog from "../../categorical/annoDialog";
|
||||||
|
import LabelInput from "../../categorical/labelInput";
|
||||||
|
|
||||||
|
@connect((state) => ({
|
||||||
|
genesetsUI: state.genesetsUI,
|
||||||
|
}))
|
||||||
|
class AddGeneToGenesetDialogue extends React.PureComponent {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.state = {
|
||||||
|
// genesToAdd: [],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
disableAddGeneMode = () => {
|
||||||
|
const { dispatch } = this.props;
|
||||||
|
dispatch({
|
||||||
|
type: "geneset: disable add new genes mode",
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const { geneset, genesetsUI } = this.props;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<AnnoDialog
|
||||||
|
isActive={genesetsUI.isAddingGenesToGeneset === geneset}
|
||||||
|
inputProps={{ "data-testid": `${geneset}:create-label-dialog` }}
|
||||||
|
primaryButtonProps={{
|
||||||
|
"data-testid": `${geneset}:submit-label`,
|
||||||
|
}}
|
||||||
|
title="Add gene to geneset"
|
||||||
|
instruction={`Add gene to ${geneset}`}
|
||||||
|
cancelTooltipContent="Close this dialog without adding genes to geneset."
|
||||||
|
primaryButtonText="Add Gene(s)"
|
||||||
|
text="todo"
|
||||||
|
validationError={() => {
|
||||||
|
/* todo genesets this.labelNameError(genesetName) */
|
||||||
|
return false;
|
||||||
|
}}
|
||||||
|
annoInput={
|
||||||
|
<LabelInput
|
||||||
|
onChange={this.handleChange}
|
||||||
|
onSelect={this.handleSelect}
|
||||||
|
inputProps={{
|
||||||
|
"data-testid": "add-genes",
|
||||||
|
leftIcon: "manually-entered-data",
|
||||||
|
intent: "none",
|
||||||
|
autoFocus: true,
|
||||||
|
}}
|
||||||
|
newLabelMessage="New category"
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
handleSubmit={this.handleAddGeneToGeneSet}
|
||||||
|
handleCancel={this.disableAddGeneMode}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default AddGeneToGenesetDialogue;
|
||||||
@@ -13,19 +13,24 @@ import {
|
|||||||
|
|
||||||
import * as globals from "../../../globals";
|
import * as globals from "../../../globals";
|
||||||
import actions from "../../../actions";
|
import actions from "../../../actions";
|
||||||
|
import AddGeneToGenesetDialogue from "./addGeneToGenesetDialogue";
|
||||||
|
|
||||||
@connect(() => ({}))
|
@connect((state) => {
|
||||||
|
return {
|
||||||
|
genesetsUI: state.genesetsUI,
|
||||||
|
};
|
||||||
|
})
|
||||||
class GenesetMenus extends React.PureComponent {
|
class GenesetMenus extends React.PureComponent {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {};
|
this.state = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
activateAddNewLabelMode = () => {
|
activateAddGeneToGenesetMode = () => {
|
||||||
const { dispatch, geneset } = this.props;
|
const { dispatch, geneset } = this.props;
|
||||||
dispatch({
|
dispatch({
|
||||||
type: "geneset: activate add new genes mode",
|
type: "geneset: activate add new genes mode",
|
||||||
data: geneset,
|
geneset,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -60,11 +65,12 @@ class GenesetMenus extends React.PureComponent {
|
|||||||
data-testclass="handleAddNewLabelToCategory"
|
data-testclass="handleAddNewLabelToCategory"
|
||||||
data-testid={`${geneset}:add-new-label-to-category`}
|
data-testid={`${geneset}:add-new-label-to-category`}
|
||||||
icon={<Icon icon="plus" iconSize={10} />}
|
icon={<Icon icon="plus" iconSize={10} />}
|
||||||
onClick={this.activateAddNewLabelMode}
|
onClick={this.activateAddGeneToGenesetMode}
|
||||||
small
|
small
|
||||||
minimal
|
minimal
|
||||||
/>
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
<AddGeneToGenesetDialogue geneset={geneset} />
|
||||||
<Popover
|
<Popover
|
||||||
interactionKind={PopoverInteractionKind.HOVER}
|
interactionKind={PopoverInteractionKind.HOVER}
|
||||||
boundary="window"
|
boundary="window"
|
||||||
|
|||||||
@@ -24,6 +24,20 @@ class RightSidebar extends React.Component {
|
|||||||
padding: globals.leftSidebarSectionPadding,
|
padding: globals.leftSidebarSectionPadding,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
border: "1px dotted #738694",
|
||||||
|
background: "#F5F8FA",
|
||||||
|
width: "100%",
|
||||||
|
textAlign: "center",
|
||||||
|
marginBottom: 5,
|
||||||
|
position: "relative",
|
||||||
|
top: -2,
|
||||||
|
padding: 5,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
upload geneset csv
|
||||||
|
</div>
|
||||||
<GeneExpression />
|
<GeneExpression />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ const GeneSetsUI = (
|
|||||||
state = {
|
state = {
|
||||||
createGenesetModeActive: false,
|
createGenesetModeActive: false,
|
||||||
isEditingGenesetName: false,
|
isEditingGenesetName: false,
|
||||||
genesetAddingNewGenes: null,
|
isAddingGenesToGeneset: null,
|
||||||
},
|
},
|
||||||
action
|
action
|
||||||
) => {
|
) => {
|
||||||
@@ -22,6 +22,18 @@ const GeneSetsUI = (
|
|||||||
createGenesetModeActive: false,
|
createGenesetModeActive: false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
case "geneset: activate add new genes mode": {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
isAddingGenesToGeneset: action.geneset,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case "geneset: disable add new genes mode": {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
isAddingGenesToGeneset: null,
|
||||||
|
};
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user