import React, { ChangeEvent, Component } from "react"; import styled from "styled-components"; type PropsType = { label?: string; type: string; value: string | number; setValue?: (x: string | number) => void; unit?: string; placeholder?: string; width?: string; disabled?: boolean; isRequired?: boolean; }; type StateType = { readOnly: boolean; }; export default class InputRow extends Component { state = { readOnly: true, }; handleChange = (e: ChangeEvent) => { if (this.props.type === "number") { this.props.setValue(parseFloat(e.target.value)); } else { this.props.setValue(e.target.value); } }; render() { let { label, value, type, unit, placeholder, width } = this.props; return ( {label && ( )} this.setState({ readOnly: false })} disabled={this.props.disabled} placeholder={placeholder} width={width} type={type} value={value} onChange={this.handleChange} /> {unit ? {unit} : null} ); } } const Required = styled.div` margin-left: 8px; color: #fc4976; `; const Unit = styled.div` margin-left: 8px; `; const InputWrapper = styled.div` display: flex; margin-bottom: -1px; align-items: center; `; const Input = styled.input<{ disabled: boolean; width: string }>` outline: none; border: none; font-size: 13px; background: #ffffff11; border: 1px solid #ffffff55; cursor: ${(props) => (props.disabled ? "not-allowed" : "")}; border-radius: 3px; width: ${(props) => (props.width ? props.width : "270px")}; color: ${(props) => (props.disabled ? "#ffffff44" : "white")}; padding: 5px 10px; height: 35px; `; const Label = styled.div` color: #ffffff; margin-bottom: 10px; display: flex; align-items: center; font-size: 13px; font-family: "Work Sans", sans-serif; `; const StyledInputRow = styled.div` margin-bottom: 15px; margin-top: 22px; `;