From 0f237ad2e735056d8d1c0900023188aa0393503d Mon Sep 17 00:00:00 2001 From: Jonatan Witoszek Date: Fri, 15 Apr 2022 16:12:13 +0200 Subject: [PATCH] Fix event spread in PriceField (#1996) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix event spread in PriceField * Use synthetic event Co-authored-by: Dominik Żegleń --- src/components/PriceField/PriceField.tsx | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/PriceField/PriceField.tsx b/src/components/PriceField/PriceField.tsx index 482dc54e3..3612595d5 100644 --- a/src/components/PriceField/PriceField.tsx +++ b/src/components/PriceField/PriceField.tsx @@ -1,5 +1,6 @@ import { InputAdornment, TextField, TextFieldProps } from "@material-ui/core"; import { InputProps } from "@material-ui/core/Input"; +import { FormChange } from "@saleor/hooks/useForm"; import { makeStyles } from "@saleor/macaw-ui"; import React, { useMemo } from "react"; import { FormattedMessage } from "react-intl"; @@ -70,22 +71,27 @@ export const PriceField: React.FC = props => { [currencySymbol] ); - const handleChange: React.ChangeEventHandler = e => { - let newValue = e.target.value; - const splitCharacter = findPriceSeparator(newValue); - const [integerPart, decimalPart] = e.target.value.split(splitCharacter); + const handleChange: FormChange = e => { + let value = e.target.value; + const splitCharacter = findPriceSeparator(value); + const [integerPart, decimalPart] = value.split(splitCharacter); if (maxDecimalLength === 0 && decimalPart) { // this shouldn't happen - decimal character should be ignored - newValue = integerPart; + value = integerPart; } if (decimalPart?.length > maxDecimalLength) { const shortenedDecimalPart = decimalPart.slice(0, maxDecimalLength); - newValue = `${integerPart}${splitCharacter}${shortenedDecimalPart}`; + value = `${integerPart}${splitCharacter}${shortenedDecimalPart}`; } - onChange({ ...e, target: { ...e.target, value: newValue } }); + onChange({ + target: { + name: e.target.name, + value + } + }); }; const handleKeyPress: TextFieldProps["onKeyDown"] = e => {