fix(dashboard): Fix minor issues with Reservations and Inventroy Create forms (#8657)
This commit is contained in:
committed by
GitHub
parent
45f9961d19
commit
cfdd056d70
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user