1
- import React , { Component } from 'react' ;
1
+ import React , { useState } from 'react' ;
2
2
import Charts from 'react-apexcharts'
3
3
4
-
5
- interface apexcharts {
6
- state : any
7
- }
8
-
9
- // const WebMetrics = ({webMetrics}) => {
10
- // const [data, setData] = React.useState({});
11
- // const METRICS = ["TTFB", "LCP", "FID", "FCP", "CLS"];
12
-
13
- // React.useEffect(() => {
14
- // chrome.runtime.sendMessage({
15
- // type: "performance:metric:request",
16
- // }, (d) => {
17
- // setData(d);
18
- // })
19
- // }, [])
20
-
21
- // const output = [];
22
- // const perfMetrics = Object.keys(webMetrics)
23
- // .map((metric) => output.push(<div><div>{metric}</div><div>{Math.round(webMetrics[metric])}</div></div>));
24
-
25
- // console.log('WM >>>', webMetrics)
26
- // console.log('output>>>', output)
27
- // return (
28
- // <div>
29
- // {output}
30
- // </div>
31
- // )
32
-
33
- // }
34
-
35
-
36
- class WebMetrics extends React . Component {
37
- constructor ( props ) {
38
- super ( props ) ;
39
-
40
- this . state = {
4
+ const radialGraph = ( { webMetrics} ) => {
5
+ const state = {
41
6
42
- series : [ 75 ] ,
7
+ series : [ ( webMetrics . FCP / 1000 ) * 100 ] ,
43
8
options : {
44
9
chart : {
45
10
height : 350 ,
@@ -54,8 +19,8 @@ class WebMetrics extends React.Component {
54
19
endAngle : 225 ,
55
20
hollow : {
56
21
margin : 0 ,
57
- size : '70 %' ,
58
- background : '#fff ' ,
22
+ size : '90 %' ,
23
+ background : '#242529 ' ,
59
24
image : undefined ,
60
25
imageOffsetX : 0 ,
61
26
imageOffsetY : 0 ,
@@ -70,7 +35,7 @@ class WebMetrics extends React.Component {
70
35
} ,
71
36
track : {
72
37
background : '#fff' ,
73
- strokeWidth : '67 %' ,
38
+ strokeWidth : '10 %' ,
74
39
margin : 0 , // margin is in pixels
75
40
dropShadow : {
76
41
enabled : true ,
@@ -86,15 +51,15 @@ class WebMetrics extends React.Component {
86
51
name : {
87
52
offsetY : - 10 ,
88
53
show : true ,
89
- color : '#888 ' ,
54
+ color : '#fff ' ,
90
55
fontSize : '17px'
91
56
} ,
92
57
value : {
93
58
formatter : function ( val ) {
94
- return parseInt ( val ) ;
59
+ return parseInt ( webMetrics . FCP ) ;
95
60
} ,
96
- color : '#111 ' ,
97
- fontSize : '36px ' ,
61
+ color : '#fff ' ,
62
+ fontSize : '25px ' ,
98
63
show : true ,
99
64
}
100
65
}
@@ -116,29 +81,23 @@ class WebMetrics extends React.Component {
116
81
stroke : {
117
82
lineCap : 'round'
118
83
} ,
119
- labels : [ 'Percent ' ] ,
84
+ labels : [ 'FCP ' ] ,
120
85
} ,
121
86
122
87
123
88
} ;
124
- const { webMetrics} = props ;
125
- console . log ( 'props' , props , webMetrics )
126
- }
127
-
128
-
89
+
129
90
130
- render ( ) {
131
91
return (
132
92
133
93
134
94
< div id = "card" >
135
95
< div id = "chart" >
136
- < Charts options = { this . state . options } series = { this . state . series } type = "radialBar" height = { 350 } />
96
+ < Charts options = { state . options } series = { state . series } type = "radialBar" height = { 350 } />
137
97
</ div >
138
98
</ div >
139
99
140
100
)
141
- }
142
101
}
143
102
144
- export default WebMetrics ;
103
+ export default radialGraph ;
0 commit comments