Skip to content
Snippets Groups Projects
ShowTransaction.js 1.24 KiB
Newer Older
  • Learn to ignore specific revisions
  • meskio's avatar
    meskio committed
    import React, { useState } from "react";
    
    import { useParams, Redirect } from "react-router-dom";
    
    meskio's avatar
    meskio committed
    import { Container, Row, Col } from "react-bootstrap";
    import Fetcher from "./Fetcher";
    import ShowPurchase from "./purchase/ShowPurchase";
    import { printMoney, printDate } from "./util";
    
    meskio's avatar
    meskio committed
    
    function ShowTransaction() {
    
    meskio's avatar
    meskio committed
      const { id } = useParams();
      const [transaction, setTransaction] = useState({});
    
    meskio's avatar
    meskio committed
    
    
    meskio's avatar
    meskio committed
      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} />;
    
    meskio's avatar
    meskio committed
        default:
          show_list = null;
      }
    
    meskio's avatar
    meskio committed
    
    
    meskio's avatar
    meskio committed
      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>
      );
    
    meskio's avatar
    meskio committed
    }
    
    export default ShowTransaction;