import React, { Component } from "react"; import { Paper, Button , Grid, Typography, List, ListItem, ListItemText, ListItemAvatar, Avatar, Divider} from "@material-ui/core" import { Link } from 'react-router-dom' function msToTime(duration) { var seconds = Math.floor((duration / 1000) % 60), minutes = Math.floor((duration / (1000 * 60)) % 60), hours = Math.floor((duration / (1000 * 60 * 60)) % 24); minutes = (minutes < 10) ? "0" + minutes : minutes; seconds = (seconds < 10) ? "0" + seconds : seconds; return hours + "h " + minutes + "m " + seconds + "s"; } function getCookie(name) { let cookieValue = null; if (document.cookie && document.cookie !== '') { const cookies = document.cookie.split(';'); for (let i = 0; i < cookies.length; i++) { const cookie = cookies[i].trim(); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) === (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } const csrftoken = getCookie('csrftoken'); // pretty numbers function pn(x) { return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } export default class OrderPage extends Component { constructor(props) { super(props); this.state = { isExplicit: false, }; this.orderId = this.props.match.params.orderId; this.getOrderDetails(); } getOrderDetails() { fetch('/api/order' + '?order_id=' + this.orderId) .then((response) => response.json()) .then((data) => { this.setState({ statusCode: data.status, statusText: data.status_message, type: data.type, currency: data.currency, currencyCode: this.getCurrencyCode(data.currency), amount: data.amount, paymentMethod: data.payment_method, isExplicit: data.is_explicit, premium: data.premium, satoshis: data.satoshis, makerId: data.maker, isParticipant: data.is_participant, makerNick: data.maker_nick, takerId: data.taker, takerNick: data.taker_nick, isBuyer:data.buyer, isSeller:data.seller, expiresAt:data.expires_at, }); }); } // Gets currency code (3 letters) from numeric (e.g., 1 -> USD) // Improve this function so currencies are read from json getCurrencyCode(val){ return (val == 1 ) ? "USD": ((val == 2 ) ? "EUR":"ETH") } // Fix to use proper react props handleClickBackButton=()=>{ window.history.back(); } handleClickTakeOrderButton=()=>{ console.log(this.state) const requestOptions = { method: 'POST', headers: {'Content-Type':'application/json', 'X-CSRFToken': getCookie('csrftoken')}, body: JSON.stringify({}), }; fetch('/api/order/' + '?order_id=' + this.orderId, requestOptions) .then((response) => response.json()) .then((data) => (console.log(data) & this.getOrderDetails(data.id))); } render (){ return ( BTC {this.state.type ? " Sell " : " Buy "} Order {this.state.isParticipant ? <> {this.state.takerNick!='None' ? <> : "" } :"" } {this.state.isExplicit ? : } {this.state.isParticipant ? "" : } ); } }