Skip to content
Snippets Groups Projects
Topup.js 2.04 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React, { useState } from "react";
    
    meskio's avatar
    meskio committed
    import { Redirect } from "react-router-dom";
    
    meskio's avatar
    meskio committed
    import MemberPicker from "./MemberPicker";
    
    import { Container, Form, Col, Row, Button, InputGroup } from "react-bootstrap";
    import Sender from "./Sender";
    
    meskio's avatar
    meskio committed
    
    
    function Topup() {
      const [member, setMember] = useState(null);
      const [amount, setAmount] = useState(0);
      const [comment, setComment] = useState("");
      const [transaction, setTransaction] = useState(null);
    
    meskio's avatar
    meskio committed
    
    
      if (transaction !== null) {
        return <Redirect to={"/transaction/" + transaction.ID} />;
    
    meskio's avatar
    meskio committed
      }
    
    meskio's avatar
    meskio committed
    
    
      const body = () => {
        if (member === null) {
          return null;
    
    meskio's avatar
    meskio committed
        }
    
        return {
          member: member.num,
          amount: parseInt(amount) * 100,
          comment,
        };
      };
    
    meskio's avatar
    meskio committed
    
    
      return (
        <Container>
          <Sender url="/api/topup" body={body} onSuccess={setTransaction}>
            <MemberPicker member={member} onChange={setMember} />
            <Form.Group as={Row}>
              <Form.Label as="legend" column sm={2}>
                Recarga
              </Form.Label>
              <Col sm={10}>
                <InputGroup>
    
    meskio's avatar
    meskio committed
                  <Form.Control
    
                    type="number"
                    placeholder="euros"
                    value={amount}
                    onChange={(e) => setAmount(e.target.value)}
    
    meskio's avatar
    meskio committed
                  />
    
                  <InputGroup.Append>
                    <InputGroup.Text>.00 </InputGroup.Text>
                  </InputGroup.Append>
                </InputGroup>
              </Col>
            </Form.Group>
            <Form.Group as={Row}>
              <Form.Label as="legend" column sm={2}>
                Comentario
              </Form.Label>
              <Col sm={10}>
                <Form.Control
                  placeholder="..."
                  value={comment}
                  onChange={(e) => setComment(e.target.value)}
                />
              </Col>
            </Form.Group>
            <Form.Group as={Row}>
              <Col sm={{ span: 10, offset: 2 }}>
                <Button type="submit" disabled={member === null}>
                  Recarga
                </Button>
              </Col>
            </Form.Group>
          </Sender>
        </Container>
      );
    
    meskio's avatar
    meskio committed
    }
    
    export default Topup;