import React, { useState } from "react";
import { useParams, Redirect } from "react-router-dom";
import { Container, Row, Col } from "react-bootstrap";
import Fetcher from "./Fetcher";
import ShowPurchase from "./purchase/ShowPurchase";
import { printMoney, printDate } from "./util";

function ShowTransaction() {
  const { id } = useParams();
  const [transaction, setTransaction] = useState({});

  let show_list;
  switch (transaction.type) {
    case "purchase":
      show_list = <ShowPurchase purchase={transaction.purchase} />;
      break;
    case "topup":
      show_list = <p>{transaction.topup.comment}</p>;
      break;
    case "order":
      return <Redirect to={"/order/" + transaction.order.ID} />;
    case "refund":
      return <Redirect to={"/order/" + transaction.refund.ID} />;
    default:
      show_list = null;
  }

  return (
    <Fetcher url={"/api/transaction/" + id} onFetch={setTransaction}>
      <Container>
        {show_list}
        <Row>
          <Col>
            <h3>Total: {printMoney(transaction.total)}€</h3>
          </Col>
          <Col>
            <p className="text-right">{printDate(transaction.date)}</p>
          </Col>
        </Row>
      </Container>
    </Fetcher>
  );
}

export default ShowTransaction;