Skip to content

Commit 7a2cb8b

Browse files
Merge pull request #170 from 0101oak/oak/fix-copy-3
fix
2 parents 82c757b + 1c8f1e1 commit 7a2cb8b

File tree

8 files changed

+55
-91
lines changed

8 files changed

+55
-91
lines changed

src/components/managers/orders/orders.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
} from 'api/proto-http/admin';
2323
import { Layout } from 'components/login/layout';
2424
import { ROUTES } from 'constants/routes';
25-
import { restrictNumericInput } from 'features/utilitty/removePossibilityToEnterSigns';
25+
2626
import { FC, useEffect, useState } from 'react';
2727
import { formatDateTime, getOrderStatusName, getStatusColor } from './utility';
2828

@@ -258,13 +258,16 @@ export const Orders: FC = () => {
258258
</Grid>
259259
<Grid item xs={12} sm={3}>
260260
<TextField
261-
type='number'
261+
type='text'
262262
label='Order id'
263263
variant='outlined'
264264
value={orderId}
265-
onChange={handleOrderIdChange}
265+
onChange={(e) => {
266+
if (/^\d*$/.test(e.target.value)) {
267+
handleOrderIdChange(e);
268+
}
269+
}}
266270
inputProps={{ min: 0 }}
267-
onKeyDown={restrictNumericInput}
268271
fullWidth
269272
/>
270273
</Grid>

src/components/managers/products/genericProductComponent/basicFields/basicFields.tsx

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { common_ProductNew } from 'api/proto-http/admin';
1616
import { colors } from 'constants/colors';
1717
import { generateOrUpdateSKU, generateSKU } from 'features/utilitty/dynamicGenerationOfSku';
1818
import { findInDictionary } from 'features/utilitty/findInDictionary';
19-
import { restrictNumericInput } from 'features/utilitty/removePossibilityToEnterSigns';
19+
2020
import { ErrorMessage, Field, getIn, useFormikContext } from 'formik';
2121
import React, { FC, useCallback, useEffect, useMemo, useState } from 'react';
2222
import CountryList from 'react-select-country-list';
@@ -93,11 +93,15 @@ export const BasicFields: FC<BasicProductFieldsInterface> = ({
9393
let formattedValue = value;
9494

9595
if (name === 'product.productBody.salePercentage.value') {
96-
let numericValue = parseFloat(value);
97-
if (numericValue > 99) {
98-
return;
96+
if (value === '') {
97+
formattedValue = '0';
98+
} else {
99+
let numericValue = parseFloat(value);
100+
if (numericValue > 99) {
101+
return;
102+
}
103+
formattedValue = numericValue.toString();
99104
}
100-
formattedValue = numericValue.toString();
101105
}
102106
setFieldValue(name, formattedValue);
103107

@@ -353,7 +357,7 @@ export const BasicFields: FC<BasicProductFieldsInterface> = ({
353357
variant='outlined'
354358
label={'price'.toUpperCase()}
355359
name='product.productBody.price.value'
356-
type='number'
360+
type='text'
357361
inputProps={{ min: 0, step: '0.01' }}
358362
required
359363
fullWidth
@@ -366,8 +370,11 @@ export const BasicFields: FC<BasicProductFieldsInterface> = ({
366370
getIn(errors, 'product.productBody.price.value')
367371
}
368372
InputLabelProps={{ shrink: true }}
369-
onChange={handlePriceChange}
370-
onKeyDown={restrictNumericInput}
373+
onChange={(e: any) => {
374+
if (/^\d*\.?\d{0,2}$/.test(e.target.value)) {
375+
handlePriceChange(e);
376+
}
377+
}}
371378
onBlur={(e: any) => {
372379
const formattedValue = parseFloat(e.target.value).toFixed(2);
373380
setFieldValue('product.productBody.price.value', formattedValue);
@@ -382,11 +389,14 @@ export const BasicFields: FC<BasicProductFieldsInterface> = ({
382389
as={TextField}
383390
label={'sale percentage'.toUpperCase()}
384391
name='product.productBody.salePercentage.value'
385-
onChange={(e: any) => handlePriceChange(e, true)}
386-
type='number'
392+
onChange={(e: any) => {
393+
if (/^\d*$/.test(e.target.value)) {
394+
handlePriceChange(e, true);
395+
}
396+
}}
397+
type='text'
387398
inputProps={{ min: 0, max: 99 }}
388399
InputLabelProps={{ shrink: true }}
389-
onKeyDown={restrictNumericInput}
390400
fullWidth
391401
disabled={disableFields}
392402
/>

src/components/managers/products/genericProductComponent/sizesAndMeasurements/sizesAndMeasurements.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import {
1717
} from 'api/proto-http/admin';
1818
import { sortItems } from 'features/filterForSizesAndMeasurements/filter';
1919
import { findInDictionary } from 'features/utilitty/findInDictionary';
20-
import { handlePaste, restrictNumericInput } from 'features/utilitty/removePossibilityToEnterSigns';
2120
import { useFormikContext } from 'formik';
2221
import React, { FC, useCallback, useEffect, useState } from 'react';
2322
import styles from 'styles/addProd.scss';
@@ -215,8 +214,6 @@ export const SizesAndMeasurements: FC<ProductSizesAndMeasurementsInterface> = ({
215214
handleSizeChange(e, size.id);
216215
}
217216
}}
218-
onKeyDown={restrictNumericInput}
219-
onPaste={handlePaste}
220217
style={{ width: '80px' }}
221218
disabled={disableFields || (!isLastSize && lastSizeNonZero)}
222219
/>
@@ -225,15 +222,17 @@ export const SizesAndMeasurements: FC<ProductSizesAndMeasurementsInterface> = ({
225222
{measurementsToDisplay.map((measurement) => (
226223
<TableCell key={measurement.id}>
227224
<TextField
228-
type='number'
225+
type='text'
229226
value={
230227
values.sizeMeasurements?.[sizeIndex]?.measurements?.find(
231228
(m) => m.measurementNameId === measurement.id,
232229
)?.measurementValue?.value || ''
233230
}
234-
onChange={(e) => handleMeasurementChange(e, size.id, measurement.id)}
235-
onKeyDown={restrictNumericInput}
236-
onPaste={handlePaste}
231+
onChange={(e) => {
232+
if (/^\d*$/.test(e.target.value)) {
233+
handleMeasurementChange(e, size.id, measurement.id);
234+
}
235+
}}
237236
inputProps={{ min: 0 }}
238237
style={{ width: '80px' }}
239238
disabled={disableFields || (!isLastSize && lastSizeNonZero)}

src/components/managers/products/listProducts/filterProducts/filterProducts.tsx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import {
1616
} from 'api/proto-http/admin';
1717
import { colors } from 'constants/colors';
1818
import { findInDictionary } from 'features/utilitty/findInDictionary';
19-
import { restrictNumericInput } from 'features/utilitty/removePossibilityToEnterSigns';
2019
import { Field, FieldProps, Form, Formik } from 'formik';
2120
import { FC, useEffect, useState } from 'react';
2221
import {
@@ -191,25 +190,27 @@ export const Filter: FC<FilterProps> = ({ filter, onFilterChange }) => {
191190
<TextField
192191
label='FROM'
193192
type='number'
194-
onChange={(e) =>
195-
handleFieldChange(setFieldValue, 'filterConditions.from', e.target.value)
196-
}
193+
onChange={(e) => {
194+
if (/^\d*$/.test(e.target.value)) {
195+
handleFieldChange(setFieldValue, 'filterConditions.from', e.target.value);
196+
}
197+
}}
197198
value={filter.filterConditions?.from}
198199
inputProps={{ min: 0 }}
199-
onKeyDown={restrictNumericInput}
200200
fullWidth
201201
/>
202202
</Grid>
203203
<Grid item xs={12} md={2}>
204204
<TextField
205205
label='TO'
206206
type='number'
207-
onChange={(e) =>
208-
handleFieldChange(setFieldValue, 'filterConditions.to', e.target.value)
209-
}
207+
onChange={(e) => {
208+
if (/^\d*$/.test(e.target.value)) {
209+
handleFieldChange(setFieldValue, 'filterConditions.to', e.target.value);
210+
}
211+
}}
210212
value={filter.filterConditions?.to}
211213
inputProps={{ min: 0 }}
212-
onKeyDown={restrictNumericInput}
213214
fullWidth
214215
/>
215216
</Grid>

src/components/managers/promo/createPromo.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import {
1010
import { DatePicker, LocalizationProvider } from '@mui/x-date-pickers';
1111
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
1212
import { common_PromoCodeInsert } from 'api/proto-http/admin';
13-
import { restrictNumericInput } from 'features/utilitty/removePossibilityToEnterSigns';
1413
import { FC, useState } from 'react';
1514

1615
interface CreatePromoInterface {
@@ -148,13 +147,16 @@ export const CreatePromo: FC<CreatePromoInterface> = ({ showMessage, createNewPr
148147
helperText={error}
149148
name='discount'
150149
value={promo.discount?.value}
151-
type='number'
150+
type='text'
152151
inputProps={{ min: 0, max: 99 }}
153-
onKeyDown={restrictNumericInput}
154152
variant='outlined'
155153
label='DISCOUNT'
156154
size='small'
157-
onChange={handlePromoFieldsChange}
155+
onChange={(e: any) => {
156+
if (/^\d*$/.test(e.target.value)) {
157+
handlePromoFieldsChange(e);
158+
}
159+
}}
158160
fullWidth={true}
159161
/>
160162
</Grid>

src/components/managers/promo/promo.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Alert, Grid, Snackbar, Theme, useMediaQuery } from '@mui/material';
1+
import { Alert, Grid, Snackbar } from '@mui/material';
22
import { Layout } from 'components/login/layout';
33
import { FC, useEffect } from 'react';
44
import { CreatePromo } from './createPromo';

src/components/managers/settings/settings.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import { getDictionary } from 'api/admin';
1414
import { UpdateSettingsRequest, common_Dictionary } from 'api/proto-http/admin';
1515
import { updateSettings } from 'api/settings';
1616
import { Layout } from 'components/login/layout';
17-
import { restrictNumericInput } from 'features/utilitty/removePossibilityToEnterSigns';
1817
import { Field, FieldProps, Formik } from 'formik';
1918
import debounce from 'lodash/debounce';
2019
import { FC, useCallback, useEffect, useState } from 'react';
@@ -156,13 +155,13 @@ export const Settings: FC = () => {
156155
as={TextField}
157156
name={`shipmentCarriers[${index}].price.value`}
158157
label='Price'
159-
type='number'
158+
type='text'
160159
size='small'
161160
inputProps={{ min: 0, step: '.01' }}
162-
onKeyDown={restrictNumericInput}
163161
onChange={(e: any) => {
164-
const rawValue = e.target.value;
165-
setFieldValue(`shipmentCarriers[${index}].price.value`, rawValue);
162+
if (/^\d*\.?\d{0,2}$/.test(e.target.value)) {
163+
setFieldValue(`shipmentCarriers[${index}].price.value`, e.target.value);
164+
}
166165
}}
167166
onBlur={(e: any) => {
168167
const formattedValue = parseFloat(e.target.value || '0').toFixed(2);

src/features/utilitty/removePossibilityToEnterSigns.ts

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)