import React, { useState } from "react";
import { Form } from "react-bootstrap";
import { printMoney } from "./util";
import PriceEditor from "./PriceEditor";

function EditableCell(props) {
  const [data, setData] = useState(props.value);
  const [editing, setEditing] = useState(false);

  let value = props.value;
  if (props.price) {
    value = printMoney(props.value);
  }
  if (props.ro || !editing) {
    return <td onClick={() => setEditing(true)}>{value}</td>;
  }

  const submit = (e) => {
    e.preventDefault();
    props.onChange(data);
    setEditing(false);
  };

  return (
    <td>
      <Form onSubmit={submit}>
        {props.price ? (
          <PriceEditor value={data} onChange={(price) => setData(price)} />
        ) : (
          <Form.Control
            value={data}
            onChange={(e) => setData(e.target.value)}
            onBlur={() => setEditing(false)}
          />
        )}
      </Form>
    </td>
  );
}

export default EditableCell;