mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-29 07:18:12 +08:00
* revert all commits to before Typescript migration * update compat workflow to match latest deps (#2335) * update compat workflow to match latest deps * attempt to debug * attempt to debug * remove debugging code * typo * update deps to match desktop (#2340) * fix: don't run lint with `--fix` on push tests (#2273) * fix: don't run lint with `--fix` on push tests * npx Co-authored-by: maniarathi <mani.arathi@gmail.com> Co-authored-by: Madison Dunitz <madison.dunitz@chanzuckerberg.com> * rename X_approx_distribution to X_approximate_distribution (#2337) * Correctly handle non-finite numbers in heuristic determination of X distribution (#2342) * handle non-finites explicitly * improve and test edge case handling for distribution estimation * revert debugging changes * code readability * clean up type inferencing (#2332) * unit tests for 64 bit conversion * clean up type handling * type inference tests * more type inference fixes * use schema to determine user intent for data typing * stop using deprecated API * fbs type encoding test * add missing test * add more tests * correctly infer X type for CXG adaptor * lint * fix typo * ts migration * cleanup from PR review * lint * PR review changes * remove unused packages from client (#2359) * remove unused packages from client * add missing peer dep * fix: disable FE auth testing on compatibility tests (#2377) * update: release process (#2277) Co-authored-by: maniarathi <mani.arathi@gmail.com> * fix: remove spaces in param setup (#2380) * delete deploy workflow (#2396) * undo reformatting which now does not pass lint * fix snapshots which changed due to npm dep changes * add missing quoting to snapshot * another snapshot typo fix * TS Revert (2) - replay PR #2347 and #2354 (#2403) * replay edits from PR 2347 * TS Revert (3) - replay edits in PR #2327 (#2404) * replay edits in PR 2327 * TS Revert (4) - replay PR #2355 (#2405) * replay edits in PR 2355 * add additional babel config * reformat with new prettier config Co-authored-by: Severiano Badajoz <sbadajoz@chanzuckerberg.com> Co-authored-by: maniarathi <mani.arathi@gmail.com> Co-authored-by: Madison Dunitz <madison.dunitz@chanzuckerberg.com>
90 lines
2.4 KiB
JavaScript
90 lines
2.4 KiB
JavaScript
import React from "react";
|
|
import { connect } from "react-redux";
|
|
import AnnoDialog from "../../annoDialog";
|
|
import LabelInput from "../../labelInput";
|
|
import parseBulkGeneString from "../../../util/parseBulkGeneString";
|
|
import actions from "../../../actions";
|
|
|
|
@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",
|
|
});
|
|
};
|
|
|
|
handleAddGeneToGeneSet = (e) => {
|
|
const { geneset, dispatch } = this.props;
|
|
const { genesToAdd } = this.state;
|
|
|
|
const genesTmpHardcodedFormat = [];
|
|
|
|
const genesArrayFromString = parseBulkGeneString(genesToAdd);
|
|
|
|
genesArrayFromString.forEach((_gene) => {
|
|
genesTmpHardcodedFormat.push({
|
|
geneSymbol: _gene,
|
|
});
|
|
});
|
|
|
|
dispatch(actions.genesetAddGenes(geneset, genesTmpHardcodedFormat));
|
|
dispatch({
|
|
type: "geneset: disable add new genes mode",
|
|
});
|
|
if (e) e.preventDefault();
|
|
};
|
|
|
|
handleChange = (e) => {
|
|
this.setState({ genesToAdd: e });
|
|
};
|
|
|
|
render() {
|
|
const { geneset, genesetsUI } = this.props;
|
|
const { genesToAdd } = this.state;
|
|
|
|
return (
|
|
<>
|
|
<AnnoDialog
|
|
isActive={genesetsUI.isAddingGenesToGeneset === geneset}
|
|
inputProps={{ "data-testid": `${geneset}:create-label-dialog` }}
|
|
primaryButtonProps={{
|
|
"data-testid": `${geneset}:submit-gene`,
|
|
}}
|
|
title="Add genes to gene set"
|
|
instruction={`Add genes to ${geneset}`}
|
|
cancelTooltipContent="Close this dialog without adding genes to gene set."
|
|
primaryButtonText="Add genes"
|
|
text={genesToAdd}
|
|
validationError={false}
|
|
annoInput={
|
|
<LabelInput
|
|
onChange={this.handleChange}
|
|
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;
|