import { TextField } from "@mui/material"; import { LenConstraint } from "../../api/ServerApi"; /** * Couple / Member property edition */ export function PropEdit(p: { label: string; editable: boolean; value?: string; onValueChange?: (newVal: string | undefined) => void; size?: LenConstraint; checkValue?: (s: string) => boolean; multiline?: boolean; minRows?: number; maxRows?: number; helperText?: string; }): React.ReactElement { if (((!p.editable && p.value) ?? "") === "") return <>; return ( p.onValueChange?.( e.target.value.length === 0 ? undefined : e.target.value ) } inputProps={{ maxLength: p.size?.max, }} InputProps={{ readOnly: !p.editable, }} variant={p.editable ? "filled" : "standard"} style={{ width: "100%", marginBottom: "15px" }} multiline={p.multiline} minRows={p.minRows} maxRows={p.maxRows} error={ (p.checkValue && p.value && p.value.length > 0 && !p.checkValue(p.value)) || false } helperText={p.helperText} /> ); }