From 1f6366f262a6677cef0270ae53c03d7e67112aba Mon Sep 17 00:00:00 2001 From: Anoop M D Date: Wed, 18 Oct 2023 23:13:50 +0530 Subject: [PATCH] fix: allow empty values to be stored as timeout --- .../src/components/Preferences/General/index.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/bruno-app/src/components/Preferences/General/index.js b/packages/bruno-app/src/components/Preferences/General/index.js index 142682280..00e91df7c 100644 --- a/packages/bruno-app/src/components/Preferences/General/index.js +++ b/packages/bruno-app/src/components/Preferences/General/index.js @@ -12,10 +12,17 @@ const General = ({ close }) => { const preferencesSchema = Yup.object().shape({ sslVerification: Yup.boolean(), - timeout: Yup.number('Request Timeout must be a number') - .positive('Request Timeout must be a positive number') - .typeError('Request Timeout must be a number') - .optional() + timeout: Yup.mixed() + .transform((value, originalValue) => { + return originalValue === '' ? undefined : value; + }) + .nullable() + .test('isNumber', 'Request Timeout must be a number', (value) => { + return value === undefined || !isNaN(value); + }) + .test('isValidTimeout', 'Request Timeout must be equal or greater than 0', (value) => { + return value === undefined || Number(value) >= 0; + }) }); const formik = useFormik({ @@ -26,7 +33,7 @@ const General = ({ close }) => { validationSchema: preferencesSchema, onSubmit: async (values) => { try { - const newPreferences = await proxySchema.validate(values, { abortEarly: true }); + const newPreferences = await preferencesSchema.validate(values, { abortEarly: true }); handleSave(newPreferences); } catch (error) { console.error('Preferences validation error:', error.message);