1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00

remove cost, capture price type

This commit is contained in:
Matthias Kretschmann 2020-08-05 11:54:10 +02:00
parent 91802e7a51
commit 19ccb80a48
Signed by: m
GPG Key ID: 606EEEF3C479A91F
5 changed files with 24 additions and 12 deletions

View File

@ -22,8 +22,8 @@ export interface MetadataPublishForm {
author: string author: string
license: string license: string
price: { price: {
cost: number
tokensToMint: number tokensToMint: number
type: 'simple' | 'advanced' | string
} }
access: 'Download' | 'Compute' | string access: 'Download' | 'Compute' | string
termsAndConditions: boolean termsAndConditions: boolean

View File

@ -9,16 +9,22 @@ interface TabsItem {
export default function Tabs({ export default function Tabs({
items, items,
className className,
handleTabChange
}: { }: {
items: TabsItem[] items: TabsItem[]
className?: string className?: string
handleTabChange?: (tabName: string) => void
}): ReactElement { }): ReactElement {
return ( return (
<ReactTabs className={`${className && className}`}> <ReactTabs className={`${className && className}`}>
<TabList className={styles.tabList}> <TabList className={styles.tabList}>
{items.map((item) => ( {items.map((item) => (
<Tab className={styles.tab} key={item.title}> <Tab
className={styles.tab}
key={item.title}
onClick={() => handleTabChange(item.title)}
>
{item.title} {item.title}
</Tab> </Tab>
))} ))}

View File

@ -9,7 +9,6 @@ import { useField } from 'formik'
export default function Price(props: InputProps): ReactElement { export default function Price(props: InputProps): ReactElement {
const [field, meta, helpers] = useField(props) const [field, meta, helpers] = useField(props)
const cost = 1
const weightOnDataToken = '90' // in % const weightOnDataToken = '90' // in %
const [ocean, setOcean] = useState('1') const [ocean, setOcean] = useState('1')
const [tokensToMint, setTokensToMint] = useState<number>() const [tokensToMint, setTokensToMint] = useState<number>()
@ -18,11 +17,17 @@ export default function Price(props: InputProps): ReactElement {
setOcean(event.target.value) setOcean(event.target.value)
} }
function handleTabChange(tabName: string) {
const type = tabName.startsWith('Simple') ? 'simple' : 'advanced'
helpers.setValue({ ...field.value, type })
}
// Always update everything when ocean changes // Always update everything when ocean changes
useEffect(() => { useEffect(() => {
const tokensToMint = Number(ocean) * (Number(weightOnDataToken) / 10) const tokensToMint = Number(ocean) * (Number(weightOnDataToken) / 10)
setTokensToMint(tokensToMint) setTokensToMint(tokensToMint)
helpers.setValue({ cost, tokensToMint }) console.log(field.value)
helpers.setValue({ ...field.value, tokensToMint })
}, [ocean]) }, [ocean])
const tabs = [ const tabs = [
@ -45,7 +50,7 @@ export default function Price(props: InputProps): ReactElement {
return ( return (
<div className={styles.price}> <div className={styles.price}>
<Tabs items={tabs} /> <Tabs items={tabs} handleTabChange={handleTabChange} />
<pre> <pre>
<code>{JSON.stringify(field.value)}</code> <code>{JSON.stringify(field.value)}</code>
</pre> </pre>

View File

@ -28,20 +28,19 @@ export default function PublishPage({
`) `)
const metadata = transformPublishFormToMetadata(values) const metadata = transformPublishFormToMetadata(values)
const { cost, tokensToMint } = values.price const { tokensToMint, type } = values.price
const serviceType = values.access === 'Download' ? 'access' : 'compute' const serviceType = values.access === 'Download' ? 'access' : 'compute'
console.log(` console.log(`
Transformed metadata values: Transformed metadata values:
---------------------- ----------------------
${JSON.stringify(metadata, null, 2)} ${JSON.stringify(metadata, null, 2)}
Cost: ${cost}
Tokens to mint: ${tokensToMint} Tokens to mint: ${tokensToMint}
`) `)
try { try {
const ddo = await publish(metadata as any, tokensToMint.toString(), [ const ddo = await publish(metadata as any, tokensToMint.toString(), [
{ serviceType, cost: cost.toString() } { serviceType }
]) ])
if (publishError) { if (publishError) {

View File

@ -7,8 +7,10 @@ export const validationSchema = Yup.object().shape<MetadataPublishForm>({
name: Yup.string().required('Required'), name: Yup.string().required('Required'),
author: Yup.string().required('Required'), author: Yup.string().required('Required'),
price: Yup.object().shape({ price: Yup.object().shape({
cost: Yup.number().required('Required'), tokensToMint: Yup.number().required('Required'),
tokensToMint: Yup.number().required('Required') type: Yup.string()
.matches(/simple|advanced/g)
.required('Required')
}), }),
files: Yup.array<FileMetadata>().required('Required').nullable(), files: Yup.array<FileMetadata>().required('Required').nullable(),
description: Yup.string().required('Required'), description: Yup.string().required('Required'),
@ -28,7 +30,7 @@ export const initialValues: MetadataPublishForm = {
name: undefined, name: undefined,
author: undefined, author: undefined,
price: { price: {
cost: 1, type: 'simple',
tokensToMint: 1 tokensToMint: 1
}, },
files: undefined, files: undefined,