import React, {Component} from "react"; import {EventProp} from "./Events"; import {CurrencyPair, FirstConnectMessage, NewEventMessage, NewTickMessage, PositionProp} from "../types"; import {socket} from "../index"; import {symbolToPair} from "../utils"; import {Helmet} from "react-helmet"; import {Navbar, Sidebar} from "./Navbars"; type AppState = { current_price: number, current_tick: number, last_update: Date, positions: Array, events: Array, active_pair: CurrencyPair, available_pairs: Array } class App extends Component<{}, AppState> { event_id = 0; state = { current_price: 0, current_tick: 0, last_update: new Date(), positions: [], events: [], active_pair: symbolToPair("tBTCUSD"), available_pairs: [] } constructor(props) { super(props) } componentDidMount() { console.log(this) socket.on("first_connect", (data: FirstConnectMessage) => { this.setState({ current_price: data.prices[data.prices.length - 1], current_tick: data.ticks[data.ticks.length - 1], last_update: new Date(), positions: data.positions }) }) socket.on("new_tick", (data: NewTickMessage) => { this.setState({ current_price: data.price, current_tick: data.tick, last_update: new Date(), positions: data.positions, }) }) socket.on("new_event", (data: NewEventMessage) => { // ignore new tick if (!data.kind.toLowerCase().includes("new_tick")) { const new_event: EventProp = { id: this.event_id, name: data.kind, tick: data.tick } this.event_id += 1 this.setState({ events: [...this.state.events, new_event] }) } }) } render() { return ( <> Rustico - {String(this.state.active_pair.base) + "/" + String(this.state.active_pair.quote)} {String(this.state.current_price)}
{/* */} {/*
*/} {/* */} {/* /!* Card list container *!/*/} {/* */} {/* /!*Header*!/*/} {/* nearby jobs*/} {/* */} {/* */} {/*
*/} {/* */} {/*
    */} {/*
  • */} {/* */} {/* */} {/* */} {/* english lesson*/} {/*
    */} {/* */} {/* */} {/* */} {/* 4.2 mi*/} {/*
    */} {/*
*/} {/* */} {/* */} {/* Lorem ipsum, dolor sit amet consectetur*/} {/* adipisicing elit. Explicabo assumenda porro*/} {/* sapiente, cum nobis tempore delectus*/} {/* consectetur ullam reprehenderit quis ducimus,*/} {/* iusto dolor nam corporis id perspiciatis*/} {/* consequuntur saepe excepturi.*/} {/*

*/} {/*
*/} {/* */} {/*
*/} {/* */} {/* */} {/* */} {/* Regina C.*/} {/* */} {/* via HeyTutor*/} {/* */} {/*
*/} {/* */} {/* 14 hours ago*/} {/*

*/} {/*
*/} {/* */} {/* */} {/*
  • */} {/* */} {/* */} {/* */} {/* english lesson*/} {/*
    */} {/* */} {/* */} {/* */} {/* 4.2 mi*/} {/*
    */} {/*
  • */} {/* */} {/* */} {/* Lorem ipsum, dolor sit amet consectetur*/} {/* adipisicing elit. Explicabo assumenda porro*/} {/* sapiente, cum nobis tempore delectus*/} {/* consectetur ullam reprehenderit quis ducimus,*/} {/* iusto dolor nam corporis id perspiciatis*/} {/* consequuntur saepe excepturi.*/} {/*

    */} {/*
    */} {/* */} {/*
    */} {/* */} {/* */} {/* */} {/* Regina C.*/} {/* */} {/* via HeyTutor*/} {/* */} {/*
    */} {/* */} {/* 14 hours ago*/} {/*

    */} {/*
    */} {/* */} {/* */} {/* */} {/* */} {/* see all*/} {/* */} {/*
    */} {/* */} {/* */} {/* */} {/* */} {/* scheduled lessons*/} {/* */} {/* */} {/*
    */} {/* */} {/* Your schedule is empty*/} {/* */} {/* Make your first appointment*/} {/* */} {/* */} {/*
    */} {/* */} {/* */} {/* */} ) } } export default App;