mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-04 09:08:12 +08:00
934cc5c69b
* Added TS. Updated build and linting config. Added types. * [ts-migrate][.] Rename files from JS/JSX to TS/TSX Co-authored-by: ts-migrate <> * [ts-migrate][.] Run TS Migrate Co-authored-by: ts-migrate <> * Corrected files mangled by ts-migrate. * Updated lint config, minor linting. * Re-enabled Husky. * Updated tests and config. * Reverted webpack devtool config. * Removed obsolete snapshots. * Added annotations snap. * Updated tsconfig includes wrt linting. * Removed ts-migrate. Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
93 lines
3.3 KiB
TypeScript
93 lines
3.3 KiB
TypeScript
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";
|
|
|
|
type State = any;
|
|
|
|
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
|
@connect((state) => ({
|
|
genesetsUI: (state as any).genesetsUI,
|
|
}))
|
|
class AddGeneToGenesetDialogue extends React.PureComponent<{}, State> {
|
|
constructor(props: {}) {
|
|
super(props);
|
|
this.state = {
|
|
genesToAdd: "",
|
|
};
|
|
}
|
|
|
|
disableAddGeneMode = () => {
|
|
// @ts-expect-error ts-migrate(2339) FIXME: Property 'dispatch' does not exist on type 'Readon... Remove this comment to see the full error message
|
|
const { dispatch } = this.props;
|
|
dispatch({
|
|
type: "geneset: disable add new genes mode",
|
|
});
|
|
};
|
|
|
|
handleAddGeneToGeneSet = (e: any) => {
|
|
// @ts-expect-error ts-migrate(2339) FIXME: Property 'geneset' does not exist on type 'Readonl... Remove this comment to see the full error message
|
|
const { geneset, dispatch } = this.props;
|
|
const { genesToAdd } = this.state;
|
|
const genesTmpHardcodedFormat: any = [];
|
|
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: any) => {
|
|
this.setState({ genesToAdd: e });
|
|
};
|
|
|
|
render() {
|
|
// @ts-expect-error ts-migrate(2339) FIXME: Property 'geneset' does not exist on type 'Readonl... Remove this comment to see the full error message
|
|
const { geneset, genesetsUI } = this.props;
|
|
const { genesToAdd } = this.state;
|
|
return (
|
|
<>
|
|
<AnnoDialog
|
|
// @ts-expect-error ts-migrate(2322) FIXME: Type '{ isActive: boolean; inputProps: { "data-tes... Remove this comment to see the full error message
|
|
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
|
|
// @ts-expect-error ts-migrate(2322) FIXME: Type '{ onChange: (e: any) => void; inputProps: { ... Remove this comment to see the full error message
|
|
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;
|