diff --git a/src/components/pages/Publish/FormAlgoPublish.tsx b/src/components/pages/Publish/FormAlgoPublish.tsx index 8ed842cef..83f6296df 100644 --- a/src/components/pages/Publish/FormAlgoPublish.tsx +++ b/src/components/pages/Publish/FormAlgoPublish.tsx @@ -13,6 +13,8 @@ import Input from '../../atoms/Input' import Button from '../../atoms/Button' import { FormContent, FormFieldProps } from '../../../@types/Form' import { MetadataPublishFormAlgorithm } from '../../../@types/MetaData' +import { initialValues as initialValuesAlgorithm } from '../../../models/FormAlgoPublish' + import stylesIndex from './index.module.css' const query = graphql` @@ -109,7 +111,10 @@ export default function FormPublish(): ReactElement { const resetFormAndClearStorage = (e: FormEvent) => { e.preventDefault() - resetForm({ values: initialValues, status: 'empty' }) + resetForm({ + values: initialValuesAlgorithm as MetadataPublishFormAlgorithm, + status: 'empty' + }) setStatus('empty') } diff --git a/src/components/pages/Publish/FormPublish.tsx b/src/components/pages/Publish/FormPublish.tsx index 8557d280e..5ec54b0ee 100644 --- a/src/components/pages/Publish/FormPublish.tsx +++ b/src/components/pages/Publish/FormPublish.tsx @@ -7,6 +7,7 @@ import Input from '../../atoms/Input' import Button from '../../atoms/Button' import { FormContent, FormFieldProps } from '../../../@types/Form' import { MetadataPublishFormDataset } from '../../../@types/MetaData' +import { initialValues as initialValuesDataset } from '../../../models/FormAlgoPublish' import stylesIndex from './index.module.css' const query = graphql` @@ -72,7 +73,10 @@ export default function FormPublish(): ReactElement { const resetFormAndClearStorage = (e: FormEvent) => { e.preventDefault() - resetForm({ values: initialValues, status: 'empty' }) + resetForm({ + values: initialValuesDataset as MetadataPublishFormDataset, + status: 'empty' + }) setStatus('empty') } diff --git a/src/components/pages/Publish/index.tsx b/src/components/pages/Publish/index.tsx index 36664181e..38483705d 100644 --- a/src/components/pages/Publish/index.tsx +++ b/src/components/pages/Publish/index.tsx @@ -1,5 +1,5 @@ import React, { ReactElement, useState, useEffect } from 'react' -import { Formik } from 'formik' +import { Formik, FormikState } from 'formik' import { usePublish, useOcean } from '@oceanprotocol/react' import styles from './index.module.css' import FormPublish from './FormPublish' @@ -73,6 +73,22 @@ export default function PublishPage({ const [error, setError] = useState() const [title, setTitle] = useState() const [did, setDid] = useState() + const [algoInitialValues, setAlgoInitialValues] = useState< + Partial + >( + (localStorage.getItem('ocean-publish-form-algorithms') && + (JSON.parse(localStorage.getItem('ocean-publish-form-algorithms')) + .initialValues as MetadataPublishFormAlgorithm)) || + initialValuesAlgorithm + ) + const [datasetInitialValues, setdatasetInitialValues] = useState< + Partial + >( + (localStorage.getItem('ocean-publish-form-datasets') && + (JSON.parse(localStorage.getItem('ocean-publish-form-datasets')) + .initialValues as MetadataPublishFormDataset)) || + initialValues + ) const [publishType, setPublishType] = useState( 'dataset' ) @@ -87,7 +103,9 @@ export default function PublishPage({ async function handleSubmit( values: Partial, - resetForm: () => void + resetForm: ( + nextState?: Partial>> + ) => void ): Promise { const metadata = transformPublishFormToMetadata(values) const timeout = mapTimeoutStringToSeconds(values.timeout) @@ -121,7 +139,10 @@ export default function PublishPage({ setSuccess( '🎉 Successfully published. 🎉 Now create a price on your data set.' ) - resetForm() + resetForm({ + values: initialValues as MetadataPublishFormDataset, + status: 'empty' + }) } catch (error) { setError(error.message) Logger.error(error.message) @@ -130,7 +151,9 @@ export default function PublishPage({ async function handleAlgorithmSubmit( values: Partial, - resetForm: () => void + resetForm: ( + nextState?: Partial>> + ) => void ): Promise { const metadata = transformPublishAlgorithmFormToMetadata(values) @@ -154,7 +177,10 @@ export default function PublishPage({ setSuccess( '🎉 Successfully published. 🎉 Now create a price for your algorithm.' ) - resetForm() + resetForm({ + values: initialValuesAlgorithm as MetadataPublishFormAlgorithm, + status: 'empty' + }) } catch (error) { setError(error.message) Logger.error(error.message) @@ -164,7 +190,7 @@ export default function PublishPage({ return isInPurgatory && purgatoryData ? null : ( {({ values }) => { const tabs = [ @@ -225,9 +252,12 @@ export default function PublishPage({ + handleTabChange={(title) => { setPublishType(title.toLowerCase().replace(' ', '') as any) - } + title === 'Algorithm' + ? setdatasetInitialValues(values) + : setAlgoInitialValues(values) + }} /> )}