fix: applied timezone to default values, removed value nesting

This commit is contained in:
2025-10-28 11:43:13 +04:00
parent 3575b9f34a
commit ea6a6df371
6 changed files with 61 additions and 56 deletions

View File

@ -2,6 +2,7 @@ import { Checkbox, NumberInput, TextInput } from "@mantine/core";
import { DatePickerInput, DateTimePicker } from "@mantine/dates";
import { UseFormReturnType } from "@mantine/form";
import { UpdateAttributeSchema } from "@/lib/client";
import { naiveDateTimeStringToUtc } from "@/utils/datetime";
type Props = {
form: UseFormReturnType<Partial<UpdateAttributeSchema>>;
@ -12,7 +13,7 @@ const DefaultAttributeValueInput = ({ form }: Props) => {
const label = "Значение по умолчанию";
const inputName = "defaultValue";
const value = form.getValues().defaultValue?.value;
const value = form.getValues().defaultValue;
if (type === "bool") {
return (
@ -21,9 +22,7 @@ const DefaultAttributeValueInput = ({ form }: Props) => {
{...form.getInputProps(inputName, { type: "checkbox" })}
checked={value as boolean}
onChange={e =>
form.setFieldValue("defaultValue", {
value: e.currentTarget.checked,
})
form.setFieldValue("defaultValue", e.currentTarget.checked)
}
/>
);
@ -33,13 +32,11 @@ const DefaultAttributeValueInput = ({ form }: Props) => {
label={label}
{...form.getInputProps(inputName)}
value={
form.values.defaultValue?.value
? new Date(String(form.values.defaultValue.value))
form.values.defaultValue
? new Date(String(form.values.defaultValue))
: null
}
onChange={value =>
form.setFieldValue("defaultValue", { value })
}
onChange={value => form.setFieldValue("defaultValue", value)}
clearable
locale={"ru"}
valueFormat={"DD.MM.YYYY"}
@ -51,13 +48,21 @@ const DefaultAttributeValueInput = ({ form }: Props) => {
label={label}
{...form.getInputProps(inputName)}
value={
form.values.defaultValue?.value
? new Date(String(form.values.defaultValue.value))
form.values.defaultValue
? naiveDateTimeStringToUtc(
form.values.defaultValue as string
)
: null
}
onChange={value =>
form.setFieldValue("defaultValue", { value })
}
onChange={val => {
if (!val) return;
const localDate = new Date(val.replace(" ", "T"));
const utcString = localDate
.toISOString()
.substring(0, 19)
.replace("T", " ");
form.setFieldValue("defaultValue", utcString);
}}
clearable
locale={"ru"}
valueFormat={"DD.MM.YYYY HH:mm"}
@ -76,9 +81,9 @@ const DefaultAttributeValueInput = ({ form }: Props) => {
allowDecimal={type === "float"}
label={label}
{...form.getInputProps(inputName)}
value={Number(form.values.defaultValue?.value)}
value={Number(form.values.defaultValue)}
onChange={value =>
form.setFieldValue("defaultValue", { value: Number(value) })
form.setFieldValue("defaultValue", Number(value))
}
/>
);