mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
* prototype view switching * refactor, more UI * formik form setup & data flow * debug output, fixes, refactor * description preview refactor * publish/update date changes * output created & updated date at top of asset * use ddo.created & ddo.updated everywhere * stop pushing metadata.main.datePublished * owner check for edit link * all the feedback states and switching between them: loading, error, success * refactor feedback, one component for publish & edit * action & date output fixes * move all content, iterate form fields from it * UI updates * styling tweaks * ddo dataflow refactor, more useAsset usage * more useAsset usage * form actions styling * prepare edit history component * metadata output tweaks * copy * safeguard against profile urls without protocol defined * refetch ddo after edit Signed-off-by: mihaisc <mihai.scarlat@smartcontrol.ro> * switch author for dataTokenOptions in metadata preview * refactor * copy * showPricing fix * validation: minimum characters for title & description * disable submit button when validation fails * form validation fixes * manually trigger onChange validation in publish & edit forms Co-authored-by: mihaisc <mihai.scarlat@smartcontrol.ro>
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import { MetadataMarket, MetadataPublishForm } from '../@types/MetaData'
|
|
import { toStringNoMS } from '.'
|
|
import AssetModel from '../models/Asset'
|
|
import slugify from '@sindresorhus/slugify'
|
|
import { DDO } from '@oceanprotocol/lib'
|
|
|
|
export function transformTags(value: string): string[] {
|
|
const originalTags = value?.split(',')
|
|
const transformedTags = originalTags?.map((tag) => slugify(tag).toLowerCase())
|
|
return transformedTags
|
|
}
|
|
|
|
export function transformPublishFormToMetadata(
|
|
{
|
|
name,
|
|
author,
|
|
description,
|
|
tags,
|
|
links,
|
|
termsAndConditions,
|
|
files
|
|
}: Partial<MetadataPublishForm>,
|
|
ddo?: DDO
|
|
): MetadataMarket {
|
|
const currentTime = toStringNoMS(new Date())
|
|
|
|
const metadata: MetadataMarket = {
|
|
main: {
|
|
...AssetModel.main,
|
|
name,
|
|
author,
|
|
dateCreated: ddo ? ddo.created : currentTime,
|
|
files: typeof files !== 'string' && files,
|
|
license: 'https://market.oceanprotocol.com/terms'
|
|
},
|
|
additionalInformation: {
|
|
...AssetModel.additionalInformation,
|
|
description,
|
|
tags: transformTags(tags),
|
|
links: typeof links !== 'string' ? links : [],
|
|
termsAndConditions
|
|
}
|
|
}
|
|
|
|
return metadata
|
|
}
|