1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00

replace history page and route with account

This commit is contained in:
Bogdan Fazakas 2021-08-04 15:21:57 +03:00
parent a7c1db215e
commit 261348f883
22 changed files with 136 additions and 101 deletions

View File

@ -1 +1,2 @@
/asset/* /asset/index.html 200 /asset/* /asset/index.html 200
/account/* /account/index.html 200

View File

@ -0,0 +1,4 @@
{
"title": "Account",
"description": "Find the data sets and jobs that you previously accessed."
}

View File

@ -1,6 +1,4 @@
{ {
"title": "History",
"description": "Find the data sets and jobs that you previously accessed.",
"compute": { "compute": {
"storage": "Results are stored for 30 days." "storage": "Results are stored for 30 days."
} }

View File

@ -12,8 +12,8 @@
"link": "/publish" "link": "/publish"
}, },
{ {
"name": "History", "name": "My Account",
"link": "/history" "link": "/account"
} }
], ],
"warning": { "warning": {

View File

@ -33,11 +33,15 @@ exports.onCreatePage = async ({ page, actions }) => {
const { createPage } = actions const { createPage } = actions
// page.matchPath is a special key that's used for matching pages // page.matchPath is a special key that's used for matching pages
// only on the client. // only on the client.
const handleClientSideOnly = page.path.match(/^\/asset/) const handleClientSideOnlyAsset = page.path.match(/^\/asset/)
const handleClientSideOnlyAccount = page.path.match(/^\/account/)
if (handleClientSideOnly) {
page.matchPath = '/asset/*'
if (handleClientSideOnlyAsset || handleClientSideOnlyAccount) {
page.matchPath = handleClientSideOnlyAsset
? '/asset/*'
: handleClientSideOnlyAsset
? '/account/*'
: '/'
// Update the page. // Update the page.
createPage(page) createPage(page)
} }

View File

@ -41,7 +41,7 @@ import { getPreviousOrders, getPrice } from '../../../../utils/subgraph'
import { chainIds } from '../../../../../app.config' import { chainIds } from '../../../../../app.config'
const SuccessAction = () => ( const SuccessAction = () => (
<Button style="text" to="/history?defaultTab=ComputeJobs" size="small"> <Button style="text" to="/account?defaultTab=ComputeJobs" size="small">
Go to history Go to history
</Button> </Button>
) )

View File

@ -7,7 +7,7 @@
} }
.asset { .asset {
composes: box from '../../../atoms/Box.module.css'; composes: box from '../../../../atoms/Box.module.css';
box-shadow: none; box-shadow: none;
padding: calc(var(--spacer) / 2); padding: calc(var(--spacer) / 2);
margin-bottom: calc(var(--spacer) / 2); margin-bottom: calc(var(--spacer) / 2);

View File

@ -1,16 +1,16 @@
import React, { ReactElement, useEffect, useState } from 'react' import React, { ReactElement, useEffect, useState } from 'react'
import axios from 'axios' import axios from 'axios'
import { ComputeJobMetaData } from '../../../../@types/ComputeJobMetaData' import { ComputeJobMetaData } from '../../../../../@types/ComputeJobMetaData'
import Time from '../../../atoms/Time' import Time from '../../../../atoms/Time'
import Button from '../../../atoms/Button' import Button from '../../../../atoms/Button'
import Modal from '../../../atoms/Modal' import Modal from '../../../../atoms/Modal'
import MetaItem from '../../../organisms/AssetContent/MetaItem' import MetaItem from '../../../../organisms/AssetContent/MetaItem'
import { ReactComponent as External } from '../../../../images/external.svg' import { ReactComponent as External } from '../../../../../images/external.svg'
import { retrieveDDO } from '../../../../utils/aquarius' import { retrieveDDO } from '../../../../../utils/aquarius'
import { useOcean } from '../../../../providers/Ocean' import { useOcean } from '../../../../../providers/Ocean'
import Results from './Results' import Results from './Results'
import styles from './Details.module.css' import styles from './Details.module.css'
import { useSiteMetadata } from '../../../../hooks/useSiteMetadata' import { useSiteMetadata } from '../../../../../hooks/useSiteMetadata'
function Asset({ function Asset({
title, title,

View File

@ -1,17 +1,17 @@
import { Logger } from '@oceanprotocol/lib' import { Logger } from '@oceanprotocol/lib'
import React, { ReactElement, useState } from 'react' import React, { ReactElement, useState } from 'react'
import Loader from '../../../atoms/Loader' import Loader from '../../../../atoms/Loader'
import { ComputeJobMetaData } from '../../../../@types/ComputeJobMetaData' import { ComputeJobMetaData } from '../../../../../@types/ComputeJobMetaData'
import { ListItem } from '../../../atoms/Lists' import { ListItem } from '../../../../atoms/Lists'
import Button from '../../../atoms/Button' import Button from '../../../../atoms/Button'
import { useOcean } from '../../../../providers/Ocean' import { useOcean } from '../../../../../providers/Ocean'
import styles from './Results.module.css' import styles from './Results.module.css'
import FormHelp from '../../../atoms/Input/Help' import FormHelp from '../../../../atoms/Input/Help'
import { graphql, useStaticQuery } from 'gatsby' import { graphql, useStaticQuery } from 'gatsby'
export const contentQuery = graphql` export const contentQuery = graphql`
query HistoryPageComputeResultsQuery { query HistoryPageComputeResultsQuery {
content: allFile(filter: { relativePath: { eq: "pages/history.json" } }) { content: allFile(filter: { relativePath: { eq: "pages/account.json" } }) {
edges { edges {
node { node {
childPagesJson { childPagesJson {

View File

@ -1,32 +1,32 @@
import React, { ReactElement, useEffect, useState } from 'react' import React, { ReactElement, useEffect, useState } from 'react'
import web3 from 'web3' import web3 from 'web3'
import Time from '../../../atoms/Time' import Time from '../../../../atoms/Time'
import { Link } from 'gatsby' import { Link } from 'gatsby'
import { DDO, Logger, Service, Provider } from '@oceanprotocol/lib' import { DDO, Logger, Service, Provider } from '@oceanprotocol/lib'
import { ComputeJobMetaData } from '../../../../@types/ComputeJobMetaData' import { ComputeJobMetaData } from '../../../../../@types/ComputeJobMetaData'
import Dotdotdot from 'react-dotdotdot' import Dotdotdot from 'react-dotdotdot'
import Table from '../../../atoms/Table' import Table from '../../../../atoms/Table'
import Button from '../../../atoms/Button' import Button from '../../../../atoms/Button'
import { useOcean } from '../../../../providers/Ocean' import { useOcean } from '../../../../../providers/Ocean'
import { gql } from 'urql' import { gql } from 'urql'
import { useWeb3 } from '../../../../providers/Web3' import { useWeb3 } from '../../../../../providers/Web3'
import { import {
queryMetadata, queryMetadata,
transformChainIdsListToQuery transformChainIdsListToQuery
} from '../../../../utils/aquarius' } from '../../../../../utils/aquarius'
import axios, { CancelToken } from 'axios' import axios, { CancelToken } from 'axios'
import Details from './Details' import Details from './Details'
import { ComputeJob } from '@oceanprotocol/lib/dist/node/ocean/interfaces/Compute' import { ComputeJob } from '@oceanprotocol/lib/dist/node/ocean/interfaces/Compute'
import { ReactComponent as Refresh } from '../../../../images/refresh.svg' import { ReactComponent as Refresh } from '../../../../../images/refresh.svg'
import styles from './index.module.css' import styles from './index.module.css'
import { useUserPreferences } from '../../../../providers/UserPreferences' import { useUserPreferences } from '../../../../../providers/UserPreferences'
import { getOceanConfig } from '../../../../utils/ocean' import { getOceanConfig } from '../../../../../utils/ocean'
import { fetchDataForMultipleChains } from '../../../../utils/subgraph' import { fetchDataForMultipleChains } from '../../../../../utils/subgraph'
import { import {
OrdersData_tokenOrders as OrdersData, OrdersData_tokenOrders as OrdersData,
OrdersData_tokenOrders_datatokenId as OrdersDatatoken OrdersData_tokenOrders_datatokenId as OrdersDatatoken
} from '../../../../@types/apollo/OrdersData' } from '../../../../../@types/apollo/OrdersData'
import NetworkName from '../../../atoms/NetworkName' import NetworkName from '../../../../atoms/NetworkName'
const getComputeOrders = gql` const getComputeOrders = gql`
query ComputeOrders($user: String!) { query ComputeOrders($user: String!) {

View File

@ -1,18 +1,18 @@
import React, { ReactElement, useEffect, useState } from 'react' import React, { ReactElement, useEffect, useState } from 'react'
import Table from '../../atoms/Table' import Table from '../../../atoms/Table'
import { gql } from 'urql' import { gql } from 'urql'
import Time from '../../atoms/Time' import Time from '../../../atoms/Time'
import web3 from 'web3' import web3 from 'web3'
import AssetTitle from '../../molecules/AssetListTitle' import AssetTitle from '../../../molecules/AssetListTitle'
import { useWeb3 } from '../../../providers/Web3' import { useWeb3 } from '../../../../providers/Web3'
import axios from 'axios' import axios from 'axios'
import { retrieveDDO } from '../../../utils/aquarius' import { retrieveDDO } from '../../../../utils/aquarius'
import { Logger } from '@oceanprotocol/lib' import { Logger } from '@oceanprotocol/lib'
import { useSiteMetadata } from '../../../hooks/useSiteMetadata' import { useSiteMetadata } from '../../../../hooks/useSiteMetadata'
import { useUserPreferences } from '../../../providers/UserPreferences' import { useUserPreferences } from '../../../../providers/UserPreferences'
import { fetchDataForMultipleChains } from '../../../utils/subgraph' import { fetchDataForMultipleChains } from '../../../../utils/subgraph'
import { OrdersData_tokenOrders as OrdersData } from '../../../@types/apollo/OrdersData' import { OrdersData_tokenOrders as OrdersData } from '../../../../@types/apollo/OrdersData'
import NetworkName from '../../atoms/NetworkName' import NetworkName from '../../../atoms/NetworkName'
const getTokenOrders = gql` const getTokenOrders = gql`
query OrdersData($user: String!) { query OrdersData($user: String!) {

View File

@ -1,22 +1,22 @@
import React, { ReactElement, useEffect, useState } from 'react' import React, { ReactElement, useEffect, useState } from 'react'
import Table from '../../atoms/Table' import Table from '../../../atoms/Table'
import Conversion from '../../atoms/Price/Conversion' import Conversion from '../../../atoms/Price/Conversion'
import styles from './PoolShares.module.css' import styles from './PoolShares.module.css'
import AssetTitle from '../../molecules/AssetListTitle' import AssetTitle from '../../../molecules/AssetListTitle'
import { gql } from 'urql' import { gql } from 'urql'
import { import {
PoolShares as PoolSharesList, PoolShares as PoolSharesList,
PoolShares_poolShares as PoolShare, PoolShares_poolShares as PoolShare,
PoolShares_poolShares_poolId_tokens as PoolSharePoolIdTokens PoolShares_poolShares_poolId_tokens as PoolSharePoolIdTokens
} from '../../../@types/apollo/PoolShares' } from '../../../../@types/apollo/PoolShares'
import web3 from 'web3' import web3 from 'web3'
import Token from '../../organisms/AssetActions/Pool/Token' import Token from '../../../organisms/AssetActions/Pool/Token'
import { useWeb3 } from '../../../providers/Web3' import { useWeb3 } from '../../../../providers/Web3'
import { useUserPreferences } from '../../../providers/UserPreferences' import { useUserPreferences } from '../../../../providers/UserPreferences'
import { fetchDataForMultipleChains } from '../../../utils/subgraph' import { fetchDataForMultipleChains } from '../../../../utils/subgraph'
import NetworkName from '../../atoms/NetworkName' import NetworkName from '../../../atoms/NetworkName'
import axios from 'axios' import axios from 'axios'
import { retrieveDDO } from '../../../utils/aquarius' import { retrieveDDO } from '../../../../utils/aquarius'
const REFETCH_INTERVAL = 20000 const REFETCH_INTERVAL = 20000

View File

@ -1,15 +1,15 @@
import { Logger } from '@oceanprotocol/lib' import { Logger } from '@oceanprotocol/lib'
import { QueryResult } from '@oceanprotocol/lib/dist/node/metadatacache/MetadataCache' import { QueryResult } from '@oceanprotocol/lib/dist/node/metadatacache/MetadataCache'
import React, { ReactElement, useEffect, useState } from 'react' import React, { ReactElement, useEffect, useState } from 'react'
import AssetList from '../../organisms/AssetList' import AssetList from '../../../organisms/AssetList'
import axios from 'axios' import axios from 'axios'
import { import {
queryMetadata, queryMetadata,
transformChainIdsListToQuery transformChainIdsListToQuery
} from '../../../utils/aquarius' } from '../../../../utils/aquarius'
import { useWeb3 } from '../../../providers/Web3' import { useWeb3 } from '../../../../providers/Web3'
import { useSiteMetadata } from '../../../hooks/useSiteMetadata' import { useSiteMetadata } from '../../../../hooks/useSiteMetadata'
import { useUserPreferences } from '../../../providers/UserPreferences' import { useUserPreferences } from '../../../../providers/UserPreferences'
export default function PublishedList(): ReactElement { export default function PublishedList(): ReactElement {
const { accountId } = useWeb3() const { accountId } = useWeb3()

View File

@ -1,13 +1,13 @@
import React, { ReactElement } from 'react' import React, { ReactElement } from 'react'
import Tabs from '../../atoms/Tabs' import Tabs from '../../../atoms/Tabs'
import PoolShares from './PoolShares' import PoolShares from './PoolShares'
import PoolTransactions from '../../molecules/PoolTransactions' import PoolTransactions from '../../../molecules/PoolTransactions'
import PublishedList from './PublishedList' import PublishedList from './PublishedList'
import Downloads from './Downloads' import Downloads from './Downloads'
import ComputeJobs from './ComputeJobs' import ComputeJobs from './ComputeJobs'
import styles from './index.module.css' import styles from './index.module.css'
import { useUserPreferences } from '../../../providers/UserPreferences' import { useUserPreferences } from '../../../../providers/UserPreferences'
import OceanProvider from '../../../providers/Ocean' import OceanProvider from '../../../../providers/Ocean'
const tabs = [ const tabs = [
{ {

View File

@ -0,0 +1,23 @@
import React, { ReactElement } from 'react'
import HistoryPage from './History'
import { useWeb3 } from '../../../providers/Web3'
export default function AccountPage({
accountIdentifier
}: {
accountIdentifier: ReactElement | string
}): ReactElement {
const { accountId } = useWeb3()
if (!accountIdentifier) accountIdentifier = accountId
return (
<article>
{accountIdentifier ? (
<p>WIP Account metadata header for user: {accountIdentifier}</p>
) : (
<p>Please connect your Web3 wallet.</p>
)}
<HistoryPage />
</article>
)
}

View File

@ -0,0 +1,35 @@
import React, { ReactElement, useState, useEffect } from 'react'
import Page from '../../components/templates/Page'
import { graphql, PageProps } from 'gatsby'
import AccountPage from '../../components/pages/Account'
export default function PageGatsbyAccount(props: PageProps): ReactElement {
const content = (props.data as any).content.edges[0].node.childPagesJson
const { title } = content
const [accountId, setAccountId] = useState<string>()
useEffect(() => {
setAccountId(props.location.pathname.split('/')[2])
}, [props.location.pathname])
return (
<Page title={title} uri={props.uri}>
<AccountPage accountIdentifier={accountId} />
</Page>
)
}
export const contentQuery = graphql`
query AccountPageQuery {
content: allFile(filter: { relativePath: { eq: "pages/account.json" } }) {
edges {
node {
childPagesJson {
title
description
}
}
}
}
}
`

View File

@ -1,30 +0,0 @@
import React, { ReactElement } from 'react'
import PageHistory from '../components/pages/History'
import Page from '../components/templates/Page'
import { graphql, PageProps } from 'gatsby'
export default function PageGatsbyHistory(props: PageProps): ReactElement {
const content = (props.data as any).content.edges[0].node.childPagesJson
const { title, description } = content
return (
<Page title={title} description={description} uri={props.uri}>
<PageHistory />
</Page>
)
}
export const contentQuery = graphql`
query HistoryPageQuery {
content: allFile(filter: { relativePath: { eq: "pages/history.json" } }) {
edges {
node {
childPagesJson {
title
description
}
}
}
}
}
`

View File

@ -23,8 +23,8 @@
"link": "/publish" "link": "/publish"
}, },
{ {
"name": "History", "name": "Account",
"link": "/history" "link": "/account"
} }
] ]
} }