import * as React from 'react'; import _ from 'lodash'; import DatasetList from './DatasetList'; import { inject, observer } from 'mobx-react'; import client from 'shared/api/cbioportalClientInstance'; import { remoteData } from 'cbioportal-frontend-commons'; import { getServerConfig } from 'config/config'; import styles from './styles.module.scss'; import { PageLayout } from '../../../shared/components/PageLayout/PageLayout'; import LoadingIndicator from 'shared/components/loadingIndicator/LoadingIndicator'; import Helmet from 'react-helmet'; import request from 'superagent'; import { getStudyDownloadListUrl } from 'shared/api/urls'; import { AppStore } from 'AppStore'; export class DatasetPageStore { readonly data = remoteData({ invoke: () => { return client.getAllStudiesUsingGET({ projection: 'DETAILED' }); }, }); readonly downloadList = remoteData(() => { if (getServerConfig().app_name === 'public-portal') { return request(getStudyDownloadListUrl()).then(resp => resp.body); } else { return Promise.resolve([]); } }); } @observer export default class DatasetPage extends React.Component<{}, {}> { private store: DatasetPageStore; constructor(props: any) { super(props); this.store = new DatasetPageStore(); } public render() { const header: JSX.Element | null = !_.isEmpty( getServerConfig().skin_data_sets_header ) ? (

) : null; return (
{'cBioPortal for Cancer Genomics::Datasets'}

Datasets

{this.store.data.isComplete && this.store.downloadList.isComplete && (
{header}
)} {(this.store.data.isPending || this.store.downloadList.isPending) && ( )}
); } }