import React, { useState, useContext } from "react";
import { Row, Col, Button } from "react-bootstrap";
import { LinkContainer } from "react-router-bootstrap";
import Fetcher from "./Fetcher";
import OrderCards from "./order/OrderCards";
import MyTransactions from "./transaction/MyTransactions";
import AuthContext from "./AuthContext";
import { printMoney } from "./util";

function Dashboard() {
  const [name, setName] = useState(null);
  const [balance, setBalance] = useState(null);
  const auth = useContext(AuthContext);

  const onFetch = (member) => {
    if (member.name !== name) {
      setName(member.name);
    }
    if (member.balance !== balance) {
      setBalance(member.balance);
    }
  };

  let buyButton;
  if (!auth.disabled) {
    buyButton = (
      <LinkContainer to="/purchase">
        <Button variant="success">Comprar</Button>
      </LinkContainer>
    );
  }

  return (
    <Fetcher url={"/api/member/me"} onFetch={onFetch}>
      <Row>
        <Col xs>
          <div className="text-right">
            <h6>{name}</h6>
            <h1>{printMoney(balance)}€</h1>
          </div>
        </Col>
        <Col xs={{ offset: 0 }} md={{ offset: 1 }}>
          <br />
          {buyButton}
        </Col>
      </Row>
      <OrderCards />
      <MyTransactions />
    </Fetcher>
  );
}

export default Dashboard;