2019-02-15 15:23:13 +01:00
|
|
|
import React, { PureComponent } from 'react'
|
|
|
|
import { Link } from 'react-router-dom'
|
2019-02-15 17:26:28 +01:00
|
|
|
import Spinner from '../atoms/Spinner'
|
2019-02-15 16:48:43 +01:00
|
|
|
import Asset from '../molecules/Asset'
|
2019-02-15 15:23:13 +01:00
|
|
|
import styles from './AssetsUser.module.scss'
|
|
|
|
|
|
|
|
export default class AssetsUser extends PureComponent {
|
2019-02-15 17:26:28 +01:00
|
|
|
public state = { results: [], isLoading: true }
|
2019-02-15 15:23:13 +01:00
|
|
|
|
|
|
|
public componentDidMount() {
|
|
|
|
this.searchOcean()
|
|
|
|
}
|
|
|
|
|
|
|
|
private async searchOcean() {
|
|
|
|
const queryRequest: any = {
|
|
|
|
offset: 100,
|
|
|
|
page: 0,
|
|
|
|
query: {
|
|
|
|
// TODO: query all assets published by current active account
|
|
|
|
$text: {
|
2019-02-15 16:48:43 +01:00
|
|
|
$search: 'zoid'
|
2019-02-15 15:23:13 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-02-15 17:26:28 +01:00
|
|
|
|
|
|
|
try {
|
|
|
|
const assets = await this.context.ocean.searchAssets(queryRequest)
|
|
|
|
this.setState({ results: assets, isLoading: false })
|
|
|
|
} catch (error) {
|
|
|
|
this.setState({ isLoading: false })
|
|
|
|
}
|
2019-02-15 15:23:13 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public render() {
|
|
|
|
return (
|
|
|
|
<div className={styles.assetsUser}>
|
|
|
|
<h2 className={styles.subTitle}>Your Data Sets</h2>
|
|
|
|
|
2019-02-15 17:26:28 +01:00
|
|
|
{this.state.isLoading ? (
|
|
|
|
<Spinner />
|
|
|
|
) : this.state.results.length ? (
|
2019-02-15 16:48:43 +01:00
|
|
|
<div className={styles.assets}>
|
|
|
|
{this.state.results.map((asset, index) => (
|
|
|
|
<Asset key={index} asset={asset} />
|
|
|
|
))}
|
|
|
|
</div>
|
2019-02-15 15:23:13 +01:00
|
|
|
) : (
|
|
|
|
<div>
|
|
|
|
<p>None yet.</p>
|
|
|
|
<Link to="/publish">+ Publish A Data Set</Link>
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
</div>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|