From b8f4f1e694c32b3d3ccd1e292d0d33b1ec15b663 Mon Sep 17 00:00:00 2001 From: "web@ppanel" Date: Mon, 17 Mar 2025 22:47:42 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(forms):=20Add=20step=20attri?= =?UTF-8?q?bute=20to=20number=20inputs=20for=20better=20value=20control?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/app/dashboard/coupon/coupon-form.tsx | 2 ++ apps/admin/app/dashboard/payment/payment-form.tsx | 3 ++- .../admin/app/dashboard/subscribe/subscribe-form.tsx | 8 ++++++-- packages/ui/src/custom-components/dynamic-Inputs.tsx | 12 ++++++++++-- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/apps/admin/app/dashboard/coupon/coupon-form.tsx b/apps/admin/app/dashboard/coupon/coupon-form.tsx index 87e3253..0bc20c7 100644 --- a/apps/admin/app/dashboard/coupon/coupon-form.tsx +++ b/apps/admin/app/dashboard/coupon/coupon-form.tsx @@ -307,6 +307,7 @@ export default function CouponForm>({ { form.setValue(field.name, value); @@ -327,6 +328,7 @@ export default function CouponForm>({ { form.setValue(field.name, value); diff --git a/apps/admin/app/dashboard/payment/payment-form.tsx b/apps/admin/app/dashboard/payment/payment-form.tsx index c5e67d2..3f9c39d 100644 --- a/apps/admin/app/dashboard/payment/payment-form.tsx +++ b/apps/admin/app/dashboard/payment/payment-form.tsx @@ -319,7 +319,8 @@ export default function PaymentForm({ }} defaultValue={field.value} value={field.value} - disabled={isEdit} + // @ts-expect-error + disabled={isEdit && Boolean(initialValues?.platform)} > diff --git a/apps/admin/app/dashboard/subscribe/subscribe-form.tsx b/apps/admin/app/dashboard/subscribe/subscribe-form.tsx index 314d2ff..8db278a 100644 --- a/apps/admin/app/dashboard/subscribe/subscribe-form.tsx +++ b/apps/admin/app/dashboard/subscribe/subscribe-form.tsx @@ -298,6 +298,7 @@ export default function SubscribeForm>({ { form.setValue(field.name, value); @@ -321,7 +322,8 @@ export default function SubscribeForm>({ { form.setValue(field.name, value); @@ -343,6 +345,7 @@ export default function SubscribeForm>({ { form.setValue(field.name, value); @@ -545,6 +548,7 @@ export default function SubscribeForm>({ { name: 'quantity', type: 'number', + step: 1, min: 1, suffix: unit_time && t(`form.${unit_time}`), }, @@ -569,7 +573,6 @@ export default function SubscribeForm>({ name: 'price', placeholder: t('form.discount_price'), type: 'number', - min: 0, formatInput: (value) => unitConversion('centsToDollars', value), formatOutput: (value) => unitConversion('dollarsToCents', value), internal: true, @@ -586,6 +589,7 @@ export default function SubscribeForm>({ ]} value={field.value} onChange={(value) => { + console.log(value); form.setValue(field.name, value); }} /> diff --git a/packages/ui/src/custom-components/dynamic-Inputs.tsx b/packages/ui/src/custom-components/dynamic-Inputs.tsx index 6fcc9f7..c9d7c87 100644 --- a/packages/ui/src/custom-components/dynamic-Inputs.tsx +++ b/packages/ui/src/custom-components/dynamic-Inputs.tsx @@ -33,8 +33,16 @@ export function ObjectInput>({ const [internalState, setInternalState] = useState(value); useEffect(() => { - setInternalState(value); - }, [value]); + let updatedState = { ...internalState, ...value }; + + fields.forEach((field) => { + if (field.calculateValue) { + updatedState = field.calculateValue(updatedState); + } + }); + + setInternalState(updatedState); + }, [value, fields]); const updateField = (key: keyof T, fieldValue: string | number | boolean) => { let updatedInternalState = { ...internalState, [key]: fieldValue };