import { dimensions_t, length_t } from "@/lib/dimensions_t"; import { Length } from "convert"; import { useState } from "react"; import { StyleSheet, Text, TextInput, View } from "react-native"; export type t_length_unit = "foot" | "inch" export type MeasurementInputProps = { onValueSet?: (d: dimensions_t) => any, defaultValue: length_t; label?: string, units?: Length, } export function MeasurementInput({onValueSet, defaultValue, label, units}: MeasurementInputProps) { const [mValue, setMValue] = useState(defaultValue) const defValue = Number.isNaN(defaultValue.l) ? 0 : defaultValue.l units = units || "ft"; function doOnValueSet(value : string) { setMValue(mValue); const iVal = parseFloat(value) || parseInt(value); onValueSet && onValueSet({ ...defaultValue, l: iVal, }) } const sDefValue = new String(defValue).valueOf() return ( {units} ) } const styles = StyleSheet.create({ inputWrapper: { alignItems: "flex-start", flexDirection: "row", verticalAlign: "middle" }, unitHints: { padding: 10, fontSize: 20, verticalAlign: "middle", }, lengthInput: { borderWidth: 1, borderRadius: 4, borderColor: "grey", padding: 4, margin: 4, fontSize: 25, }, })