From d1c6fe8fb44e3621c7e008b51a946bd7186d6567 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 27 Feb 2026 15:03:09 +0700 Subject: [PATCH] refactor(FE): Add conditional validation for sub_flags in ProductForm.schema --- .../product/form/ProductForm.schema.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/components/pages/master-data/product/form/ProductForm.schema.ts b/src/components/pages/master-data/product/form/ProductForm.schema.ts index 0f2a6956..e0d4f37f 100644 --- a/src/components/pages/master-data/product/form/ProductForm.schema.ts +++ b/src/components/pages/master-data/product/form/ProductForm.schema.ts @@ -1,4 +1,5 @@ import * as Yup from 'yup'; +import { PRODUCT_FLAG_MAPPING } from '@/config/constant'; type ProductFormSchemaType = { name: string; @@ -100,7 +101,21 @@ export const ProductFormSchema: Yup.ObjectSchema = .required('Flag wajib diisi!') .typeError('Flag wajib diisi!'), - sub_flags: Yup.array().of(Yup.string().required()), + sub_flags: Yup.array() + .of(Yup.string().required()) + .when('flag', { + is: (flag: string) => { + const mapping = PRODUCT_FLAG_MAPPING.options.find( + (opt) => opt.flag.value === flag + ); + return mapping?.allow_without_sub_flag === false; + }, + then: (schema) => + schema + .required('Sub flag wajib diisi!') + .min(1, 'Sub flag wajib diisi!'), + otherwise: (schema) => schema, + }), }); export const UpdateProductFormSchema = ProductFormSchema;