import * as moment from "moment"; import * as React from "react"; import { Form } from "semantic-ui-react"; import { TimeOfDay } from "@common/sprinklersRpc"; import TimeInput from "./TimeInput"; function timeToString(time: TimeOfDay) { return moment(time).format("LTS"); } export default class ScheduleTimes extends React.Component<{ times: TimeOfDay[]; onChange: (newTimes: TimeOfDay[]) => void; editing: boolean; }> { render() { const { times, editing } = this.props; let timesNode: React.ReactNode; if (editing) { timesNode = times.map((time, i) => ( <TimeInput value={time} key={i} index={i} onChange={this.onTimeChange} /> )); } else { timesNode = ( <span>{times.map(time => timeToString(time)).join(", ")}</span> ); } return ( <Form.Field inline className="scheduleTimes"> <label>At</label> {timesNode} </Form.Field> ); } private onTimeChange = (newTime: TimeOfDay, index: number) => { const { times, onChange } = this.props; const newTimes = times.slice(); newTimes[index] = newTime; onChange(newTimes); }; }