/** * Type-safe event handlers for form inputs. * These helpers extract values from DOM events in a way that satisfies TypeScript. */ /** * Extract the string value from an input event. */ export const getInputValue = (event: Event): string => { const target = event.target as HTMLInputElement | null return target?.value ?? '' } /** * Extract the numeric value from an input event. */ export const getInputNumber = (event: Event): number => { const target = event.target as HTMLInputElement | null const value = target?.value ?? '' const parsed = parseFloat(value) return Number.isNaN(parsed) ? 0 : parsed } /** * Extract the checked state from a checkbox event. */ export const getCheckboxValue = (event: Event): boolean => { const target = event.target as HTMLInputElement | null return target?.checked ?? false } /** * Extract an optional numeric value from an input event (empty string = undefined). */ export const getOptionalNumber = (event: Event): number | undefined => { const target = event.target as HTMLInputElement | null const value = target?.value ?? '' if (value.trim() === '') return undefined const parsed = parseFloat(value) return Number.isNaN(parsed) ? undefined : parsed }