From 8bfa030bedf87ceead5acb953b77632d0591fb5a Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Fri, 17 Jul 2020 13:01:52 +0200 Subject: [PATCH] publish updates --- src/@types/MetaData.d.ts | 2 +- src/components/pages/Publish/PublishForm.tsx | 48 ++++++++++---------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/@types/MetaData.d.ts b/src/@types/MetaData.d.ts index a3e202937..c60b75209 100644 --- a/src/@types/MetaData.d.ts +++ b/src/@types/MetaData.d.ts @@ -23,7 +23,7 @@ export interface MetadataPublishForm { author: string license: string cost: string - access: string + access: 'Download' | 'Compute' | string termsAndConditions: boolean // ---- optional fields ---- copyrightHolder?: string diff --git a/src/components/pages/Publish/PublishForm.tsx b/src/components/pages/Publish/PublishForm.tsx index d026cb050..a9c994ee1 100644 --- a/src/components/pages/Publish/PublishForm.tsx +++ b/src/components/pages/Publish/PublishForm.tsx @@ -13,6 +13,8 @@ import { MetadataPublishForm } from '../../../@types/Metadata' import { File as FileMetadata } from '@oceanprotocol/lib/dist/node/ddo/interfaces/File' import { useSiteMetadata } from '../../../hooks/useSiteMetadata' import { Persist } from 'formik-persist' +import Loader from '../../atoms/Loader' +import Alert from '../../atoms/Alert' const validationSchema = Yup.object().shape({ // ---- required fields ---- @@ -22,7 +24,9 @@ const validationSchema = Yup.object().shape({ files: Yup.array().required('Required').nullable(), description: Yup.string().required('Required'), license: Yup.string().required('Required'), - access: Yup.string().min(4).required('Required'), + access: Yup.string() + .matches(/Compute|Download/g) + .required('Required'), termsAndConditions: Yup.boolean().required('Required'), // ---- optional fields ---- @@ -51,7 +55,7 @@ export default function PublishForm({ content: FormContent }): ReactElement { const { ocean, account } = useOcean() - const { publish } = usePublish() + const { publish, publishStepText, isLoading, publishError } = usePublish() const navigate = useNavigate() const { marketAddress } = useSiteMetadata() @@ -66,22 +70,20 @@ export default function PublishForm({ const metadata = transformPublishFormToMetadata(values) const tokensToMint = '4' // how to know this? + const serviceType = values.access === 'Download' ? 'access' : 'compute' console.log(` Transformed metadata values: ---------------------- ${JSON.stringify(metadata)} - Cost: ${values.cost} + Cost: 1 Tokens to mint: ${tokensToMint} `) try { - const ddo = await publish( - metadata as any, - tokensToMint, - marketAddress, - values.cost - ) + const ddo = await publish(metadata as any, tokensToMint, marketAddress, [ + { serviceType, cost: '1' } + ]) // User feedback and redirect to new asset detail page toast.success('asset created successfully') @@ -105,7 +107,7 @@ export default function PublishForm({ setSubmitting(false) }} > - {({ isSubmitting, isValid, status, setStatus }) => ( + {({ isValid, status, setStatus }) => ( status === 'empty' && setStatus(null)} @@ -114,19 +116,19 @@ export default function PublishForm({ ))} - + {isLoading ? ( + + ) : publishError ? ( + + ) : ( + + )} )}