import * as React from 'react';
import styles from './styles/styles.module.scss';
import { observer } from 'mobx-react';
import FontAwesome from 'react-fontawesome';
import { GeneReplacement, QueryStoreComponent, Focus } from './QueryStore';
@observer
export default class GenesetsValidator extends QueryStoreComponent<{}, {}> {
render() {
if (this.store.genesetIdsQuery.error) {
return (
{`Cannot validate gene sets because of invalid OQL. ${
this.store.genesetQueryErrorDisplayStatus ===
Focus.Focused
? "Please click 'Submit' to see location of error."
: this.store.genesetIdsQuery.error.message
}`}
);
}
if (!this.store.genesetIdsQuery.query.length) {
return null;
}
if (this.store.genesets.isError) {
return (
Unable to validate gene sets.
);
}
if (
this.store.genesets.isPending &&
this.store.genesets.result.invalid.length === 0
) {
return (
Validating gene sets...
);
}
if (this.store.genesets.result.invalid.length) {
return (
Invalid gene sets.
{this.store.genesets.result.invalid.map(
this.renderSuggestion,
this
)}
);
}
return (
);
}
renderSuggestion(name: string, key: number) {
const title =
'Could not find gene set. Click to remove it from the gene list.';
const onClick = () => this.store.replaceGeneset(name, '');
return (
{name}
);
}
}