import React, { ReactElement, useState, useEffect } from 'react' import styles from './index.module.css' import Compute from './Compute' import Consume from './Consume' import { DDO } from '@oceanprotocol/lib' import Tabs from '../../atoms/Tabs' import { useOcean, useMetadata } from '@oceanprotocol/react' import compareAsBN from '../../../utils/compareAsBN' import Pool from './Pool' import { AdditionalInformationMarket } from '../../../@types/MetaData' export default function AssetActions({ ddo }: { ddo: DDO }): ReactElement { const { balance } = useOcean() const { price } = useMetadata(ddo) const [isBalanceSufficient, setIsBalanceSufficient] = useState() const isCompute = Boolean(ddo.findServiceByType('compute')) const { attributes } = ddo.findServiceByType('metadata') // Check user balance against price useEffect(() => { if (!price || !balance || !balance.ocean) return const isFree = price === '0' setIsBalanceSufficient(isFree ? true : compareAsBN(balance.ocean, price)) return () => { setIsBalanceSufficient(false) } }, [balance, price]) const UseContent = isCompute ? ( ) : ( ) const tabs = [ { title: 'Use', content: UseContent }, (!((attributes.additionalInformation as unknown) as AdditionalInformationMarket) ?.priceType || ((attributes.additionalInformation as unknown) as AdditionalInformationMarket) ?.priceType === 'dynamic') && { title: 'Pool', content: } ] return }