-
Notifications
You must be signed in to change notification settings - Fork 0
/
0003-Create-Patch-File.patch
127 lines (112 loc) · 3.89 KB
/
0003-Create-Patch-File.patch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
From d1a5e0efd76f8b4df066bdb7d6807bdf4731f24a Mon Sep 17 00:00:00 2001
From: anweshachakraborty17 <anweshachakraborty17@gmail.com>
Date: Wed, 30 Jul 2020 22:58:28 +0000
Subject: [PATCH] Create Patch File
---
node_modules.zip | Bin 0 -> 109310732 bytes
src/App.tsx | 27 +++++++++++++++++++++------
src/Graph.tsx | 15 ++++++++++++---
3 files changed, 33 insertions(+), 9 deletions(-)
create mode 100644 node_modules.zip
diff --git a/node_modules.zip b/node_modules.zip
new file mode 100644
index 0000000000000000000000000000000000000000..1a2295a48fe4694a62fe03a95ea205ba8f91e083
GIT binary patch
literal 109310732
literal 0
HcmV?d00001
diff --git a/src/App.tsx b/src/App.tsx
index 0728518..77c3fab 100755
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -8,6 +8,7 @@ import './App.css';
*/
interface IState {
data: ServerRespond[],
+ showGraph: boolean,
}
/**
@@ -22,6 +23,7 @@ class App extends Component<{}, IState> {
// data saves the server responds.
// We use this state to parse data down to the child element (Graph) as element property
data: [],
+ showGraph: false,
};
}
@@ -29,18 +31,31 @@ class App extends Component<{}, IState> {
* Render Graph react component with state.data parse as property data
*/
renderGraph() {
- return (<Graph data={this.state.data}/>)
+ if(this.state.showGraph) {
+ return (<Graph data={this.state.data}/>)
+ }
}
/**
* Get new data from server and update the state with the new data
*/
getDataFromServer() {
- DataStreamer.getData((serverResponds: ServerRespond[]) => {
- // Update the state by creating a new array of data that consists of
- // Previous data in the state and the new data from server
- this.setState({ data: [...this.state.data, ...serverResponds] });
- });
+ let x = 0;
+ const interval = setInterval(() => {
+ DataStreamer.getData((serverResponds: ServerRespond[]) => {
+ // Update the state by creating a new array of data that consists of
+ // Previous data in the state and the new data from server
+ this.setState ({
+ data: serverResponds ,
+ showGraph: true ,
+ });
+ });
+ x++;
+ if (x > 1000)
+ {
+ clearInterval(interval);
+ }
+ }, 100);
}
/**
diff --git a/src/Graph.tsx b/src/Graph.tsx
index ec1430e..79094d5 100644
--- a/src/Graph.tsx
+++ b/src/Graph.tsx
@@ -1,5 +1,5 @@
import React, { Component } from 'react';
-import { Table } from '@jpmorganchase/perspective';
+import { Table } from '@finos/perspective';
import { ServerRespond } from './DataStreamer';
import './Graph.css';
@@ -14,7 +14,7 @@ interface IProps {
* Perspective library adds load to HTMLElement prototype.
* This interface acts as a wrapper for Typescript compiler.
*/
-interface PerspectiveViewerElement {
+interface PerspectiveViewerElement extends HTMLElement{
load: (table: Table) => void,
}
@@ -32,7 +32,7 @@ class Graph extends Component<IProps, {}> {
componentDidMount() {
// Get element to attach the table from the DOM.
- const elem: PerspectiveViewerElement = document.getElementsByTagName('perspective-viewer')[0] as unknown as PerspectiveViewerElement;
+ const elem = document.getElementsByTagName('perspective-viewer')[0] as unknown as PerspectiveViewerElement;
const schema = {
stock: 'string',
@@ -49,6 +49,15 @@ class Graph extends Component<IProps, {}> {
// Add more Perspective configurations here.
elem.load(this.table);
+ elem.setAttribute('view', 'y_line');
+ elem.setAttribute('column-pivots', '["stock"]');
+ elem.setAttribute('row-pivots', '["timestamp"]');
+ elem.setAttribute('columns','["top_ask_price"]');
+ elem.setAttribute('aggregates', `
+ {"stock": "discount count",
+ "top_ask_price":"avg",
+ "top_bid_price": "avg",
+ "timestamp":"distinct count"}`)
}
}
--
2.17.2