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 (
All gene sets are valid.
); } 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}
); } }