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:
parent
91802e7a51
commit
19ccb80a48
2
src/@types/MetaData.d.ts
vendored
2
src/@types/MetaData.d.ts
vendored
@ -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
|
||||||
|
@ -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>
|
||||||
))}
|
))}
|
||||||
|
@ -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>
|
||||||
|
@ -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) {
|
||||||
|
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user