fix(dashboard): Fix minor issues with Reservations and Inventroy Create forms (#8657)

This commit is contained in:
Kasper Fabricius Kristensen
2024-08-20 13:31:31 +02:00
committed by GitHub
parent 45f9961d19
commit cfdd056d70
17 changed files with 289 additions and 281 deletions

View File

@@ -1,6 +1,6 @@
import { castNumber } from "./cast-number"
export function parseOptionalFormValue<T>(
export function transformNullableFormValue<T>(
value: T,
nullify = true
): T | undefined | null {
@@ -16,20 +16,21 @@ export function parseOptionalFormValue<T>(
}
type Nullable<T> = { [K in keyof T]: T[K] | null }
type Optional<T> = { [K in keyof T]: T[K] | undefined }
export function parseOptionalFormData<T extends Record<string, unknown>>(
data: T,
nullify = true
): Nullable<T> {
export function transformNullableFormData<
T extends Record<string, unknown>,
K extends boolean = true
>(data: T, nullify: K = true as K): K extends true ? Nullable<T> : Optional<T> {
return Object.entries(data).reduce((acc, [key, value]) => {
return {
...acc,
[key]: parseOptionalFormValue(value, nullify),
[key]: transformNullableFormValue(value, nullify),
}
}, {} as Nullable<T>)
}, {} as K extends true ? Nullable<T> : Optional<T>)
}
export function parseOptionalFormNumber(
export function transformNullableFormNumber(
value?: string | number,
nullify = true
) {
@@ -46,3 +47,21 @@ export function parseOptionalFormNumber(
return value
}
type NullableNumbers = Record<string, number | null>
type OptionalNumbers = Record<string, number | undefined>
export function transformNullableFormNumbers<
T extends Record<string, string | number | undefined>,
K extends boolean = true
>(
data: T,
nullify: K = true as K
): K extends true ? NullableNumbers : OptionalNumbers {
return Object.entries(data).reduce((acc, [key, value]) => {
return {
...acc,
[key]: transformNullableFormNumber(value, nullify),
}
}, {} as K extends true ? NullableNumbers : OptionalNumbers)
}