mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
update hooks, refactor
Signed-off-by: mihaisc <mihai.scarlat@smartcontrol.ro>
This commit is contained in:
parent
f085ecd2ef
commit
95c65b7461
6
package-lock.json
generated
6
package-lock.json
generated
@ -4479,9 +4479,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@oceanprotocol/react": {
|
"@oceanprotocol/react": {
|
||||||
"version": "0.3.5",
|
"version": "0.3.6",
|
||||||
"resolved": "https://registry.npmjs.org/@oceanprotocol/react/-/react-0.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/@oceanprotocol/react/-/react-0.3.6.tgz",
|
||||||
"integrity": "sha512-k51Mltb8bhd/n7cpcwV3knURpUXiwlryQgi6/vyd2kMNMQX6OorwHT1LcmP593FW5pIHpUEC3x/zLthYY42EiA==",
|
"integrity": "sha512-fUnbim8d0sNta5NXpwJDixS76kCmOkyaEpTYYHZOoCHyZuesDjdBEwglbxYQl2Dtz/2lnsK2y+aYSBNYsPGiVw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@oceanprotocol/lib": "^0.7.3",
|
"@oceanprotocol/lib": "^0.7.3",
|
||||||
"axios": "^0.20.0",
|
"axios": "^0.20.0",
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
"@loadable/component": "5.13.1",
|
"@loadable/component": "5.13.1",
|
||||||
"@oceanprotocol/art": "^3.0.0",
|
"@oceanprotocol/art": "^3.0.0",
|
||||||
"@oceanprotocol/lib": "^0.7.5",
|
"@oceanprotocol/lib": "^0.7.5",
|
||||||
"@oceanprotocol/react": "^0.3.5",
|
"@oceanprotocol/react": "^0.3.6",
|
||||||
"@oceanprotocol/typographies": "^0.1.0",
|
"@oceanprotocol/typographies": "^0.1.0",
|
||||||
"@sindresorhus/slugify": "^1.0.0",
|
"@sindresorhus/slugify": "^1.0.0",
|
||||||
"@tippyjs/react": "^4.2.0",
|
"@tippyjs/react": "^4.2.0",
|
||||||
|
@ -17,6 +17,7 @@ import Button from '../../atoms/Button'
|
|||||||
import Input from '../../atoms/Input'
|
import Input from '../../atoms/Input'
|
||||||
import Alert from '../../atoms/Alert'
|
import Alert from '../../atoms/Alert'
|
||||||
import { useSiteMetadata } from '../../../hooks/useSiteMetadata'
|
import { useSiteMetadata } from '../../../hooks/useSiteMetadata'
|
||||||
|
import checkPreviousOrder from '../../../utils/checkPreviousOrder'
|
||||||
|
|
||||||
export default function Compute({
|
export default function Compute({
|
||||||
ddo,
|
ddo,
|
||||||
@ -46,7 +47,7 @@ export default function Compute({
|
|||||||
const [isPublished, setIsPublished] = useState(false)
|
const [isPublished, setIsPublished] = useState(false)
|
||||||
const [file, setFile] = useState(null)
|
const [file, setFile] = useState(null)
|
||||||
const [hasPreviousOrder, setHasPreviousOrder] = useState(false)
|
const [hasPreviousOrder, setHasPreviousOrder] = useState(false)
|
||||||
|
const [previousOrderId, setPreviousOrderId] = useState<string>()
|
||||||
const isComputeButtonDisabled =
|
const isComputeButtonDisabled =
|
||||||
isJobStarting === true ||
|
isJobStarting === true ||
|
||||||
file === null ||
|
file === null ||
|
||||||
@ -57,16 +58,9 @@ export default function Compute({
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function checkPreviousOrders() {
|
async function checkPreviousOrders() {
|
||||||
const service = ddo.findServiceByType('access')
|
const orderId = await checkPreviousOrder(ocean, accountId, ddo)
|
||||||
const previousOrder = await ocean.datatokens.getPreviousValidOrders(
|
setPreviousOrderId(orderId)
|
||||||
ddo.dataToken,
|
setHasPreviousOrder(!!orderId)
|
||||||
service.attributes.main.cost,
|
|
||||||
service.index,
|
|
||||||
service.attributes.main.timeout,
|
|
||||||
accountId
|
|
||||||
)
|
|
||||||
console.log('prev ord', previousOrder, !!previousOrder)
|
|
||||||
setHasPreviousOrder(!!previousOrder)
|
|
||||||
}
|
}
|
||||||
checkPreviousOrders()
|
checkPreviousOrders()
|
||||||
}, [ddo, accountId])
|
}, [ddo, accountId])
|
||||||
@ -102,7 +96,8 @@ export default function Compute({
|
|||||||
ddo.dataToken,
|
ddo.dataToken,
|
||||||
algorithmRawCode,
|
algorithmRawCode,
|
||||||
computeContainer,
|
computeContainer,
|
||||||
marketFeeAddress
|
marketFeeAddress,
|
||||||
|
previousOrderId
|
||||||
)
|
)
|
||||||
|
|
||||||
setHasPreviousOrder(true)
|
setHasPreviousOrder(true)
|
||||||
|
@ -9,6 +9,7 @@ import styles from './Consume.module.css'
|
|||||||
import Loader from '../../atoms/Loader'
|
import Loader from '../../atoms/Loader'
|
||||||
import { useOcean, useConsume, usePricing } from '@oceanprotocol/react'
|
import { useOcean, useConsume, usePricing } from '@oceanprotocol/react'
|
||||||
import { useSiteMetadata } from '../../../hooks/useSiteMetadata'
|
import { useSiteMetadata } from '../../../hooks/useSiteMetadata'
|
||||||
|
import checkPreviousOrder from '../../../utils/checkPreviousOrder'
|
||||||
|
|
||||||
export default function Consume({
|
export default function Consume({
|
||||||
ddo,
|
ddo,
|
||||||
@ -24,6 +25,8 @@ export default function Consume({
|
|||||||
const { ocean, accountId } = useOcean()
|
const { ocean, accountId } = useOcean()
|
||||||
const { marketFeeAddress } = useSiteMetadata()
|
const { marketFeeAddress } = useSiteMetadata()
|
||||||
const [hasPreviousOrder, setHasPreviousOrder] = useState(false)
|
const [hasPreviousOrder, setHasPreviousOrder] = useState(false)
|
||||||
|
const [previousOrderId, setPreviousOrderId] = useState<string>()
|
||||||
|
|
||||||
const {
|
const {
|
||||||
dtSymbol,
|
dtSymbol,
|
||||||
buyDT,
|
buyDT,
|
||||||
@ -40,24 +43,23 @@ export default function Consume({
|
|||||||
const hasDatatoken = Number(dtBalance) >= 1
|
const hasDatatoken = Number(dtBalance) >= 1
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function checkPreviousOrders() {
|
async function checkOrders() {
|
||||||
const service = ddo.findServiceByType('access')
|
const orderId = await checkPreviousOrder(ocean, accountId, ddo)
|
||||||
const previousOrder = await ocean.datatokens.getPreviousValidOrders(
|
setPreviousOrderId(orderId)
|
||||||
ddo.dataToken,
|
setHasPreviousOrder(!!orderId)
|
||||||
service.attributes.main.cost,
|
|
||||||
service.index,
|
|
||||||
service.attributes.main.timeout,
|
|
||||||
accountId
|
|
||||||
)
|
|
||||||
console.log('prev ord', previousOrder, !!previousOrder)
|
|
||||||
setHasPreviousOrder(!!previousOrder)
|
|
||||||
}
|
}
|
||||||
checkPreviousOrders()
|
checkOrders()
|
||||||
}, [ddo, accountId])
|
}, [ddo, accountId])
|
||||||
|
|
||||||
async function handleConsume() {
|
async function handleConsume() {
|
||||||
!hasPreviousOrder && !hasDatatoken && (await buyDT('1'))
|
!hasPreviousOrder && !hasDatatoken && (await buyDT('1'))
|
||||||
await consume(ddo.id, ddo.dataToken, 'access', marketFeeAddress)
|
await consume(
|
||||||
|
ddo.id,
|
||||||
|
ddo.dataToken,
|
||||||
|
'access',
|
||||||
|
marketFeeAddress,
|
||||||
|
previousOrderId
|
||||||
|
)
|
||||||
setHasPreviousOrder(true)
|
setHasPreviousOrder(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
17
src/utils/checkPreviousOrder.ts
Normal file
17
src/utils/checkPreviousOrder.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { DDO, Ocean } from '@oceanprotocol/lib'
|
||||||
|
|
||||||
|
export default async function checkPreviousOrder(
|
||||||
|
ocean: Ocean,
|
||||||
|
accountId: string,
|
||||||
|
ddo: DDO
|
||||||
|
) {
|
||||||
|
const service = ddo.findServiceByType('access')
|
||||||
|
const previousOrder = await ocean.datatokens.getPreviousValidOrders(
|
||||||
|
ddo.dataToken,
|
||||||
|
service.attributes.main.cost,
|
||||||
|
service.index,
|
||||||
|
service.attributes.main.timeout,
|
||||||
|
accountId
|
||||||
|
)
|
||||||
|
return previousOrder
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user