1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-06-26 03:06:49 +02:00
market/src/components/@shared/AccountList/AccountList.tsx
EnzoVezzaro 42956a3441
restored "Publishers with most sales" section (#1540)
* updated subgraph query

* rework AccountList

* fix missing 'a' elem in dom (<Link> is not rendering correct markup)

* restore PublishersWithMostSales section

* removed unnecessary params in AssetList

* use Blockies for all profile.image

* changed logic on getTopAssetsPublishers

* added aggregations op to getTopAssetsPublishers method

* fix build issues

* improve logic & added correct total sales on profile

* removed complex logic to unify query

* typography & markup cleanup

Co-authored-by: Matthias Kretschmann <m@kretschmann.io>
2022-07-05 13:49:35 +01:00

58 lines
1.4 KiB
TypeScript

import React, { ReactElement } from 'react'
import styles from './index.module.css'
import classNames from 'classnames/bind'
import Loader from '../atoms/Loader'
import { useUserPreferences } from '@context/UserPreferences'
import AccountTeaser from '@shared/AccountTeaser/AccountTeaser'
const cx = classNames.bind(styles)
function LoaderArea() {
return (
<div className={styles.loaderWrap}>
<Loader />
</div>
)
}
declare type AccountListProps = {
accounts: AccountTeaserVM[]
isLoading: boolean
className?: string
}
export default function AccountList({
accounts,
isLoading,
className
}: AccountListProps): ReactElement {
const { chainIds } = useUserPreferences()
const styleClasses = cx({
accountList: true,
[className]: className
})
return accounts && (isLoading === undefined || isLoading === false) ? (
<>
<div className={styleClasses}>
{accounts.length > 0 ? (
accounts.map((account, index) => (
<AccountTeaser
accountTeaserVM={account}
key={index + 1}
place={index + 1}
/>
))
) : chainIds.length === 0 ? (
<div className={styles.empty}>No network selected.</div>
) : (
<div className={styles.empty}>No results found.</div>
)}
</div>
</>
) : (
<LoaderArea />
)
}