diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bb24f2..7d4fac2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - yes / no field fixed on admin and user view - prev property error on div - rating field default on admin +- number field defaults ### Security diff --git a/components/form/admin/types/number.type.tsx b/components/form/admin/types/number.type.tsx index 2903306..ac624b0 100644 --- a/components/form/admin/types/number.type.tsx +++ b/components/form/admin/types/number.type.tsx @@ -12,8 +12,12 @@ export const NumberType: React.FC = (props) => { label={t('type:number:default')} name={[props.field.name as string, 'value']} labelCol={{ span: 6 }} + getValueFromEvent={(value: number) => + typeof value === 'number' ? value.toFixed(2) : value + } + getValueProps={(value: string) => ({ value: value ? parseFloat(value) : undefined })} > - + ) diff --git a/components/form/admin/types/rating.type.tsx b/components/form/admin/types/rating.type.tsx index aa920f8..e2b372f 100644 --- a/components/form/admin/types/rating.type.tsx +++ b/components/form/admin/types/rating.type.tsx @@ -14,8 +14,10 @@ export const RatingType: React.FC = (props) => { name={[props.field.name as string, 'value']} labelCol={{ span: 6 }} extra={t('type:rating.clearNote')} - getValueFromEvent={(value: number) => (value !== undefined ? value.toFixed(1) : undefined)} - getValueProps={(value: string) => ({ value: parseFloat(value) })} + getValueFromEvent={(value: number) => + typeof value === 'number' ? value.toFixed(2) : value + } + getValueProps={(value: string) => ({ value: value ? parseFloat(value) : undefined })} > diff --git a/components/form/types/number.type.tsx b/components/form/types/number.type.tsx index ec574b3..e66b9d1 100644 --- a/components/form/types/number.type.tsx +++ b/components/form/types/number.type.tsx @@ -12,7 +12,11 @@ export const NumberType: React.FC = ({ field, design }) => { { type: 'number', message: 'Must be a valid URL' }, { required: field.required, message: 'Please provide Information' }, ]} - initialValue={parseFloat(field.value)} + initialValue={typeof field.value === 'number' ? parseFloat(field.value) : undefined} + getValueFromEvent={(value: number) => + typeof value === 'number' ? value.toFixed(2) : value + } + getValueProps={(value: string) => ({ value: value ? parseFloat(value) : undefined })} >