refactor(FE-114): enhance numeric input handling for chicken weight and count with improved formatting

This commit is contained in:
rstubryan
2025-10-23 16:49:32 +07:00
parent 90ae7c469a
commit 3cf8f4c89b
@@ -487,7 +487,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
// Create wrapper handlers that match NumberInput's onChange signature
const handleChickenWeightChangeWrapper = useCallback(
(idx: number) => (e: React.ChangeEvent<HTMLInputElement>) => {
const value = parseFloat(e.target.value) || 0;
const value = parseFloat(e.target.value.replace(/[^\d,.-]/g, '').replace(/,/g, '')) || 0;
handleChickenWeightChange(idx, value);
},
[handleChickenWeightChange]
@@ -495,7 +495,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
const handleChickenCountChangeWrapper = useCallback(
(idx: number) => (e: React.ChangeEvent<HTMLInputElement>) => {
const value = parseFloat(e.target.value) || 0;
const value = parseFloat(e.target.value.replace(/[^\d,.-]/g, '').replace(/,/g, '')) || 0;
handleChickenCountChange(idx, value);
},
[handleChickenCountChange]
@@ -503,7 +503,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
const handleAverageWeightChangeWrapper = useCallback(
(idx: number) => (e: React.ChangeEvent<HTMLInputElement>) => {
const value = parseFloat(e.target.value) || 0;
const value = parseFloat(e.target.value.replace(/[^\d,.-]/g, '').replace(/,/g, '')) || 0;
handleAverageWeightChange(idx, value);
},
[handleAverageWeightChange]
@@ -1100,8 +1100,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
onBlur={formik.handleBlur}
maskType='weight'
weightUnit='gram'
decimals={0}
decimals={2}
min={0}
thousandSeparator=','
decimalSeparator='.'
isError={
isRepeaterInputError(
'body_weight',
@@ -1162,8 +1164,10 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
onBlur={formik.handleBlur}
maskType='weight'
weightUnit='gram'
decimals={0}
decimals={2}
min={0}
thousandSeparator=','
decimalSeparator='.'
isError={
isRepeaterInputError(
'body_weight',