mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import React, { ReactElement, useEffect, useState } from 'react'
|
|
import SearchBar from '../molecules/SearchBar'
|
|
import { ServiceMetaDataMarket } from '../../@types/MetaData'
|
|
import AssetTeaser from '../molecules/AssetTeaser'
|
|
import styles from './Home.module.css'
|
|
import { oceanConfig } from '../../../app.config'
|
|
import { DDO, MetadataStore, Logger } from '@oceanprotocol/lib'
|
|
|
|
export default function HomePage(): ReactElement {
|
|
const [assets, setAssets] = useState<DDO[]>()
|
|
|
|
useEffect(() => {
|
|
async function getLatestAssets() {
|
|
const metadataStore = new MetadataStore(
|
|
oceanConfig.metadataStoreUri,
|
|
Logger
|
|
)
|
|
|
|
const result = await metadataStore.queryMetadata({
|
|
page: 1,
|
|
offset: 10,
|
|
query: {},
|
|
sort: { created: -1 }
|
|
})
|
|
|
|
result && result.results && setAssets(result.results)
|
|
}
|
|
getLatestAssets()
|
|
}, [])
|
|
|
|
return (
|
|
<>
|
|
<SearchBar large />
|
|
|
|
{assets && (
|
|
<div className={styles.grid}>
|
|
{assets.length ? (
|
|
assets.map((ddo: DDO) => {
|
|
const {
|
|
attributes
|
|
}: ServiceMetaDataMarket = ddo.findServiceByType('metadata')
|
|
|
|
return (
|
|
<AssetTeaser key={ddo.id} did={ddo.id} metadata={attributes} />
|
|
)
|
|
})
|
|
) : (
|
|
<div className={styles.empty}>
|
|
No data sets found in {oceanConfig.metadataStoreUri}
|
|
</div>
|
|
)}
|
|
</div>
|
|
)}
|
|
</>
|
|
)
|
|
}
|