From 35d3a548b605399e68d8eb68f4b237e800837a82 Mon Sep 17 00:00:00 2001 From: EnzoVezzaro Date: Wed, 28 Sep 2022 07:15:14 -0400 Subject: [PATCH] added dynamic validation to edit form --- src/components/Asset/Edit/_validation.ts | 46 +++++++++++++++++++++--- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/src/components/Asset/Edit/_validation.ts b/src/components/Asset/Edit/_validation.ts index 9b40e5507..800b91a2c 100644 --- a/src/components/Asset/Edit/_validation.ts +++ b/src/components/Asset/Edit/_validation.ts @@ -1,11 +1,36 @@ import { FileInfo } from '@oceanprotocol/lib' +import { validateFieldSchaclSchema } from '@utils/schaclSchema' import * as Yup from 'yup' export const validationSchema = Yup.object().shape({ name: Yup.string() - .min(4, (param) => `Title must be at least ${param.min} characters`) - .required('Required'), - description: Yup.string().required('Required').min(10), + .required('Required') + .test(async (value, { path, createError }): Promise => { + if (!value) return + const keyField = path.split('.')[0] + const valueField = path.split('.')[1] + + return await validateFieldSchaclSchema( + keyField, + valueField, + value, + createError + ) + }), + description: Yup.string() + .required('Required') + .test(async (value, { path, createError }): Promise => { + if (!value) return + const keyField = path.split('.')[0] + const valueField = path.split('.')[1] + + return await validateFieldSchaclSchema( + keyField, + valueField, + value, + createError + ) + }), price: Yup.number().required('Required'), files: Yup.array() .of( @@ -24,7 +49,20 @@ export const validationSchema = Yup.object().shape({ ) .nullable(), timeout: Yup.string().required('Required'), - author: Yup.string().nullable() + author: Yup.string() + .required('Required') + .test(async (value, { path, createError }): Promise => { + if (!value) return + const keyField = path.split('.')[0] + const valueField = path.split('.')[1] + + return await validateFieldSchaclSchema( + keyField, + valueField, + value, + createError + ) + }) }) export const computeSettingsValidationSchema = Yup.object().shape({