Client: Better locale comma support

This commit is contained in:
Donkie
2023-06-27 22:51:22 +02:00
parent d4afc56173
commit 43a3e3f1f2
5 changed files with 66 additions and 17 deletions

View File

@@ -4,6 +4,7 @@ import { Create, useForm, useSelect } from "@refinedev/antd";
import { Form, Input, Select, InputNumber, ColorPicker } from "antd";
import TextArea from "antd/es/input/TextArea";
import { IVendor } from "../vendors/model";
import { numberFormatter, numberParser } from "../../utils/parsing";
interface CreateOrCloneProps {
mode: "create" | "clone";
@@ -90,7 +91,12 @@ export const FilamentCreate: React.FC<
},
]}
>
<InputNumber min={0} />
<InputNumber
min={0}
precision={2}
formatter={numberFormatter}
parser={numberParser}
/>
</Form.Item>
<Form.Item
label="Density"
@@ -101,7 +107,13 @@ export const FilamentCreate: React.FC<
},
]}
>
<InputNumber min={0} addonAfter="g/cm³" />
<InputNumber
min={0}
addonAfter="g/cm³"
precision={3}
formatter={numberFormatter}
parser={numberParser}
/>
</Form.Item>
<Form.Item
label="Diameter"
@@ -112,7 +124,13 @@ export const FilamentCreate: React.FC<
},
]}
>
<InputNumber min={0} addonAfter="mm" />
<InputNumber
min={0}
addonAfter="mm"
precision={2}
formatter={numberFormatter}
parser={numberParser}
/>
</Form.Item>
<Form.Item
label="Weight"
@@ -124,7 +142,7 @@ export const FilamentCreate: React.FC<
},
]}
>
<InputNumber min={0} addonAfter="g" />
<InputNumber min={0} addonAfter="g" precision={0} />
</Form.Item>
<Form.Item
label="Spool Weight"
@@ -136,7 +154,7 @@ export const FilamentCreate: React.FC<
},
]}
>
<InputNumber min={0} addonAfter="g" />
<InputNumber min={0} addonAfter="g" precision={0} />
</Form.Item>
<Form.Item
label="Override Extruder Temperature"
@@ -148,7 +166,7 @@ export const FilamentCreate: React.FC<
},
]}
>
<InputNumber min={0} addonAfter="°C" />
<InputNumber min={0} addonAfter="°C" precision={0} />
</Form.Item>
<Form.Item
label="Override Bed Temperature"
@@ -160,7 +178,7 @@ export const FilamentCreate: React.FC<
},
]}
>
<InputNumber min={0} addonAfter="°C" />
<InputNumber min={0} addonAfter="°C" precision={0} />
</Form.Item>
<Form.Item
label="Article Number"

View File

@@ -12,6 +12,7 @@ import {
import dayjs from "dayjs";
import TextArea from "antd/es/input/TextArea";
import { IVendor } from "../vendors/model";
import { numberFormatter, numberParser } from "../../utils/parsing";
export const FilamentEdit: React.FC<IResourceComponentsProps> = () => {
const { formProps, saveButtonProps } = useForm();
@@ -120,7 +121,12 @@ export const FilamentEdit: React.FC<IResourceComponentsProps> = () => {
},
]}
>
<InputNumber min={0} />
<InputNumber
min={0}
precision={2}
formatter={numberFormatter}
parser={numberParser}
/>
</Form.Item>
<Form.Item
label="Density"
@@ -131,7 +137,13 @@ export const FilamentEdit: React.FC<IResourceComponentsProps> = () => {
},
]}
>
<InputNumber min={0} addonAfter="g/cm³" />
<InputNumber
min={0}
addonAfter="g/cm³"
precision={3}
formatter={numberFormatter}
parser={numberParser}
/>
</Form.Item>
<Form.Item
label="Diameter"
@@ -142,7 +154,13 @@ export const FilamentEdit: React.FC<IResourceComponentsProps> = () => {
},
]}
>
<InputNumber min={0} addonAfter="mm" />
<InputNumber
min={0}
addonAfter="mm"
precision={2}
formatter={numberFormatter}
parser={numberParser}
/>
</Form.Item>
<Form.Item
label="Weight"
@@ -154,7 +172,7 @@ export const FilamentEdit: React.FC<IResourceComponentsProps> = () => {
},
]}
>
<InputNumber min={0} addonAfter="g" />
<InputNumber min={0} addonAfter="g" precision={0} />
</Form.Item>
<Form.Item
label="Spool Weight"
@@ -166,7 +184,7 @@ export const FilamentEdit: React.FC<IResourceComponentsProps> = () => {
},
]}
>
<InputNumber min={0} addonAfter="g" />
<InputNumber min={0} addonAfter="g" precision={0} />
</Form.Item>
<Form.Item
label="Override Extruder Temperature"
@@ -178,7 +196,7 @@ export const FilamentEdit: React.FC<IResourceComponentsProps> = () => {
},
]}
>
<InputNumber min={0} addonAfter="°C" />
<InputNumber min={0} addonAfter="°C" precision={0} />
</Form.Item>
<Form.Item
label="Override Bed Temperature"
@@ -190,7 +208,7 @@ export const FilamentEdit: React.FC<IResourceComponentsProps> = () => {
},
]}
>
<InputNumber min={0} addonAfter="°C" />
<InputNumber min={0} addonAfter="°C" precision={0} />
</Form.Item>
<Form.Item
label="Article Number"

View File

@@ -98,7 +98,7 @@ export const SpoolCreate: React.FC<
},
]}
>
<InputNumber min={0} addonAfter="g" />
<InputNumber min={0} addonAfter="g" precision={0} />
</Form.Item>
<Form.Item
label="Location"

View File

@@ -1,7 +1,7 @@
import React from "react";
import { IResourceComponentsProps } from "@refinedev/core";
import { Edit, useForm, useSelect } from "@refinedev/antd";
import { Form, Input, DatePicker, Select } from "antd";
import { Form, Input, DatePicker, Select, InputNumber } from "antd";
import dayjs from "dayjs";
import TextArea from "antd/es/input/TextArea";
import { IFilament } from "../filaments/model";
@@ -108,7 +108,10 @@ export const SpoolEdit: React.FC<IResourceComponentsProps> = () => {
},
]}
>
<Input min={0} addonAfter="g" />
<InputNumber min={0} addonAfter="g" precision={0} />
{/* TODO: Allow higher precision here.
However, that requires that we can handle the , -> . replacement in the number parser
more elegantly for locales which use , as a thousands separator. */}
</Form.Item>
<Form.Item
label="Location"