joeyzheng1412-daohq-ticker-react 1.0.0 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.es.js +2 -2
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/src/components/Dao.css +4 -0
- package/src/components/Dao.js +1 -0
- package/src/components/Ticker.js +112 -62
package/dist/index.es.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import e from"react";var
|
1
|
+
import e,{useState as n,useEffect as t}from"react";var a={};Object.defineProperty(a,"__esModule",{value:!0});var i=e;function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=o(i),l=function(){return l=Object.assign||function(e){for(var n,t=1,a=arguments.length;t<a;t++)for(var i in n=arguments[t])Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i]);return e},l.apply(this,arguments)};
|
2
2
|
/*! *****************************************************************************
|
3
3
|
Copyright (c) Microsoft Corporation.
|
4
4
|
|
@@ -12,4 +12,4 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
15
|
-
***************************************************************************** */!function(e){if(!e||"undefined"==typeof window)return;const n=document.createElement("style");n.setAttribute("type","text/css"),n.innerHTML=e,document.head.appendChild(n)}('.marquee-container {\n overflow-x: hidden !important;\n display: flex !important;\n flex-direction: row !important;\n position: relative;\n width: 100%;\n}\n.marquee-container:hover div {\n animation-play-state: var(--pause-on-hover);\n}\n.marquee-container:active div {\n animation-play-state: var(--pause-on-click);\n}\n\n.overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.overlay::before, .overlay::after {\n background: linear-gradient(to right, var(--gradient-color));\n content: "";\n height: 100%;\n position: absolute;\n width: var(--gradient-width);\n z-index: 2;\n}\n.overlay::after {\n right: 0;\n top: 0;\n transform: rotateZ(180deg);\n}\n.overlay::before {\n left: 0;\n top: 0;\n}\n\n.marquee {\n flex: 0 0 auto;\n min-width: 100%;\n z-index: 1;\n display: flex;\n flex-direction: row;\n align-items: center;\n animation: scroll var(--duration) linear var(--delay) var(--iteration-count);\n animation-play-state: var(--play);\n animation-delay: var(--delay);\n animation-direction: var(--direction);\n}\n@keyframes scroll {\n 0% {\n transform: translateX(0%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}');var
|
15
|
+
***************************************************************************** */!function(e){if(!e||"undefined"==typeof window)return;const n=document.createElement("style");n.setAttribute("type","text/css"),n.innerHTML=e,document.head.appendChild(n)}('.marquee-container {\n overflow-x: hidden !important;\n display: flex !important;\n flex-direction: row !important;\n position: relative;\n width: 100%;\n}\n.marquee-container:hover div {\n animation-play-state: var(--pause-on-hover);\n}\n.marquee-container:active div {\n animation-play-state: var(--pause-on-click);\n}\n\n.overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.overlay::before, .overlay::after {\n background: linear-gradient(to right, var(--gradient-color));\n content: "";\n height: 100%;\n position: absolute;\n width: var(--gradient-width);\n z-index: 2;\n}\n.overlay::after {\n right: 0;\n top: 0;\n transform: rotateZ(180deg);\n}\n.overlay::before {\n left: 0;\n top: 0;\n}\n\n.marquee {\n flex: 0 0 auto;\n min-width: 100%;\n z-index: 1;\n display: flex;\n flex-direction: row;\n align-items: center;\n animation: scroll var(--duration) linear var(--delay) var(--iteration-count);\n animation-play-state: var(--play);\n animation-delay: var(--delay);\n animation-direction: var(--direction);\n}\n@keyframes scroll {\n 0% {\n transform: translateX(0%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}');var d=a.default=function(e){var n,t,a,o,d=e.style,c=void 0===d?{}:d,s=e.className,m=void 0===s?"":s,u=e.play,p=void 0===u||u,f=e.pauseOnHover,v=void 0!==f&&f,h=e.pauseOnClick,y=void 0!==h&&h,g=e.direction,x=void 0===g?"left":g,C=e.speed,E=void 0===C?20:C,w=e.delay,N=void 0===w?0:w,b=e.loop,k=void 0===b?0:b,q=e.gradient,A=void 0===q||q,S=e.gradientColor,O=void 0===S?[255,255,255]:S,j=e.gradientWidth,F=void 0===j?200:j,P=e.onFinish,T=e.onCycleComplete,D=e.children,I=i.useState(0),R=I[0],z=I[1],B=i.useState(0),L=B[0],H=B[1],M=i.useState(0),_=M[0],X=M[1],U=i.useState(!1),W=U[0],Z=U[1],$=i.useRef(null),G=i.useRef(null),J=function(){G.current&&$.current&&(z($.current.getBoundingClientRect().width),H(G.current.getBoundingClientRect().width)),X(L<R?R/E:L/E)};i.useEffect((function(){return J(),window.addEventListener("resize",J),function(){window.removeEventListener("resize",J)}})),i.useEffect((function(){Z(!0)}),[]);var K="rgba("+O[0]+", "+O[1]+", "+O[2];return r.default.createElement(i.Fragment,null,W?r.default.createElement("div",{ref:$,style:l(l({},c),(n={},n["--pause-on-hover"]=v?"paused":"running",n["--pause-on-click"]=y?"paused":"running",n)),className:m+" marquee-container"},A&&r.default.createElement("div",{style:(t={},t["--gradient-color"]=K+", 1), "+K+", 0)",t["--gradient-width"]="number"==typeof F?F+"px":F,t),className:"overlay"}),r.default.createElement("div",{ref:G,style:(a={},a["--play"]=p?"running":"paused",a["--direction"]="left"===x?"normal":"reverse",a["--duration"]=_+"s",a["--delay"]=N+"s",a["--iteration-count"]=k?""+k:"infinite",a),className:"marquee",onAnimationIteration:T,onAnimationEnd:P},D),r.default.createElement("div",{style:(o={},o["--play"]=p?"running":"paused",o["--direction"]="left"===x?"normal":"reverse",o["--duration"]=_+"s",o["--delay"]=N+"s",o["--iteration-count"]=k?""+k:"infinite",o),className:"marquee"},D)):null)};function c(e,n){void 0===n&&(n={});var t=n.insertAt;if(e&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===t&&a.firstChild?a.insertBefore(i,a.firstChild):a.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}c(".daoContainer{background:#000;border:2px solid gray;display:flex;flex-direction:column;height:60px;padding:8px;width:200px}.bottomContent,.topContent{display:flex;flex-direction:row}.daoChange,.daoChart,.daoImage,.daoName,.daoPrice,.daoSymbol{color:#fff}");const s=({dao:n})=>e.createElement("div",{className:"daoContainer",onClick:()=>{console.log(n.name)}},e.createElement("div",{className:"topContent"},e.createElement("img",{src:image,className:"daoImage",alt:"logo"}),e.createElement("div",{className:"daoName"},n.name),e.createElement("div",{className:"daoSymbol"},n.symbol),e.createElement("div",{className:"daoPrice"},n.price)),e.createElement("div",{className:"bottomContent"},e.createElement("div",{className:"daoChange"},n.change),e.createElement("div",{className:"daoChart"},n.chart)));c(".TickerContainer{display:flex;flex-direction:row;overflow-x:hidden;padding:6px;width:100%}");const m=()=>{API_URL="https://daohq-ticker-ick3pj1ry-daohq.vercel.app/api/ticker";const[a,i]=n([]);t((()=>{o()}),[]);const o=async()=>{const e=await fetch("https://daohq-ticker-ick3pj1ry-daohq.vercel.app/api/ticker").then((e=>e.json()));r(e)},r=e=>{console.log(e),i(e.map((e=>({name:e.historicalFinancials.Dao.name||"name N/A",image:e.historicalFinancials.Dao.daoImage||"img N/A",symbol:e.historicalFinancials.Dao.tokenSymbol||"symbol N/A",price:Math.round(1e3*e.historicalFinancials.Dao.tokenPrice)/1e3||"$-.--",change24hr:e.historicalFinancials.Dao.percentChange24hr||"change N/A",chart:"N/A"}))))};return e.createElement("div",{className:"TickerContainer"},e.createElement(d,{speed:20,pauseOnHover:!1,pauseOnClick:!0,gradient:!1},a.map((n=>e.createElement(s,{key:n.name,dao:n})))))};export{m as default};
|
package/dist/index.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"use strict";
|
1
|
+
"use strict";var e=require("react");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e),a={};Object.defineProperty(a,"__esModule",{value:!0});var i=n.default;function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=o(i),l=function(){return l=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},l.apply(this,arguments)};
|
2
2
|
/*! *****************************************************************************
|
3
3
|
Copyright (c) Microsoft Corporation.
|
4
4
|
|
@@ -12,4 +12,4 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
15
|
-
***************************************************************************** */!function(e){if(!e||"undefined"==typeof window)return;const
|
15
|
+
***************************************************************************** */!function(e){if(!e||"undefined"==typeof window)return;const t=document.createElement("style");t.setAttribute("type","text/css"),t.innerHTML=e,document.head.appendChild(t)}('.marquee-container {\n overflow-x: hidden !important;\n display: flex !important;\n flex-direction: row !important;\n position: relative;\n width: 100%;\n}\n.marquee-container:hover div {\n animation-play-state: var(--pause-on-hover);\n}\n.marquee-container:active div {\n animation-play-state: var(--pause-on-click);\n}\n\n.overlay {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n.overlay::before, .overlay::after {\n background: linear-gradient(to right, var(--gradient-color));\n content: "";\n height: 100%;\n position: absolute;\n width: var(--gradient-width);\n z-index: 2;\n}\n.overlay::after {\n right: 0;\n top: 0;\n transform: rotateZ(180deg);\n}\n.overlay::before {\n left: 0;\n top: 0;\n}\n\n.marquee {\n flex: 0 0 auto;\n min-width: 100%;\n z-index: 1;\n display: flex;\n flex-direction: row;\n align-items: center;\n animation: scroll var(--duration) linear var(--delay) var(--iteration-count);\n animation-play-state: var(--play);\n animation-delay: var(--delay);\n animation-direction: var(--direction);\n}\n@keyframes scroll {\n 0% {\n transform: translateX(0%);\n }\n 100% {\n transform: translateX(-100%);\n }\n}');var d=a.default=function(e){var t,n,a,o,d=e.style,c=void 0===d?{}:d,s=e.className,u=void 0===s?"":s,m=e.play,f=void 0===m||m,p=e.pauseOnHover,v=void 0!==p&&p,h=e.pauseOnClick,y=void 0!==h&&h,g=e.direction,x=void 0===g?"left":g,C=e.speed,E=void 0===C?20:C,w=e.delay,N=void 0===w?0:w,b=e.loop,k=void 0===b?0:b,q=e.gradient,A=void 0===q||q,S=e.gradientColor,j=void 0===S?[255,255,255]:S,O=e.gradientWidth,F=void 0===O?200:O,P=e.onFinish,T=e.onCycleComplete,D=e.children,I=i.useState(0),R=I[0],z=I[1],B=i.useState(0),L=B[0],H=B[1],M=i.useState(0),_=M[0],X=M[1],U=i.useState(!1),W=U[0],Z=U[1],$=i.useRef(null),G=i.useRef(null),J=function(){G.current&&$.current&&(z($.current.getBoundingClientRect().width),H(G.current.getBoundingClientRect().width)),X(L<R?R/E:L/E)};i.useEffect((function(){return J(),window.addEventListener("resize",J),function(){window.removeEventListener("resize",J)}})),i.useEffect((function(){Z(!0)}),[]);var K="rgba("+j[0]+", "+j[1]+", "+j[2];return r.default.createElement(i.Fragment,null,W?r.default.createElement("div",{ref:$,style:l(l({},c),(t={},t["--pause-on-hover"]=v?"paused":"running",t["--pause-on-click"]=y?"paused":"running",t)),className:u+" marquee-container"},A&&r.default.createElement("div",{style:(n={},n["--gradient-color"]=K+", 1), "+K+", 0)",n["--gradient-width"]="number"==typeof F?F+"px":F,n),className:"overlay"}),r.default.createElement("div",{ref:G,style:(a={},a["--play"]=f?"running":"paused",a["--direction"]="left"===x?"normal":"reverse",a["--duration"]=_+"s",a["--delay"]=N+"s",a["--iteration-count"]=k?""+k:"infinite",a),className:"marquee",onAnimationIteration:T,onAnimationEnd:P},D),r.default.createElement("div",{style:(o={},o["--play"]=f?"running":"paused",o["--direction"]="left"===x?"normal":"reverse",o["--duration"]=_+"s",o["--delay"]=N+"s",o["--iteration-count"]=k?""+k:"infinite",o),className:"marquee"},D)):null)};function c(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===n&&a.firstChild?a.insertBefore(i,a.firstChild):a.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}c(".daoContainer{background:#000;border:2px solid gray;display:flex;flex-direction:column;height:60px;padding:8px;width:200px}.bottomContent,.topContent{display:flex;flex-direction:row}.daoChange,.daoChart,.daoImage,.daoName,.daoPrice,.daoSymbol{color:#fff}");const s=({dao:e})=>n.default.createElement("div",{className:"daoContainer",onClick:()=>{console.log(e.name)}},n.default.createElement("div",{className:"topContent"},n.default.createElement("img",{src:image,className:"daoImage",alt:"logo"}),n.default.createElement("div",{className:"daoName"},e.name),n.default.createElement("div",{className:"daoSymbol"},e.symbol),n.default.createElement("div",{className:"daoPrice"},e.price)),n.default.createElement("div",{className:"bottomContent"},n.default.createElement("div",{className:"daoChange"},e.change),n.default.createElement("div",{className:"daoChart"},e.chart)));c(".TickerContainer{display:flex;flex-direction:row;overflow-x:hidden;padding:6px;width:100%}");module.exports=()=>{API_URL="https://daohq-ticker-ick3pj1ry-daohq.vercel.app/api/ticker";const[t,a]=e.useState([]);e.useEffect((()=>{i()}),[]);const i=async()=>{const e=await fetch("https://daohq-ticker-ick3pj1ry-daohq.vercel.app/api/ticker").then((e=>e.json()));o(e)},o=e=>{console.log(e),a(e.map((e=>({name:e.historicalFinancials.Dao.name||"name N/A",image:e.historicalFinancials.Dao.daoImage||"img N/A",symbol:e.historicalFinancials.Dao.tokenSymbol||"symbol N/A",price:Math.round(1e3*e.historicalFinancials.Dao.tokenPrice)/1e3||"$-.--",change24hr:e.historicalFinancials.Dao.percentChange24hr||"change N/A",chart:"N/A"}))))};return n.default.createElement("div",{className:"TickerContainer"},n.default.createElement(d,{speed:20,pauseOnHover:!1,pauseOnClick:!0,gradient:!1},t.map((e=>n.default.createElement(s,{key:e.name,dao:e})))))};
|
package/package.json
CHANGED
package/src/components/Dao.css
CHANGED
package/src/components/Dao.js
CHANGED
@@ -8,6 +8,7 @@ const Dao = ({ dao }) => {
|
|
8
8
|
return (
|
9
9
|
<div className="daoContainer" onClick={DaoClick}>
|
10
10
|
<div className="topContent">
|
11
|
+
<img src={image} className="daoImage" alt="logo" />
|
11
12
|
<div className="daoName">{dao.name}</div>
|
12
13
|
<div className="daoSymbol">{dao.symbol}</div>
|
13
14
|
<div className="daoPrice">{dao.price}</div>
|
package/src/components/Ticker.js
CHANGED
@@ -1,82 +1,132 @@
|
|
1
|
-
import React from "react";
|
1
|
+
import React, { useState, useEffect } from "react";
|
2
2
|
import Marquee from "react-fast-marquee";
|
3
3
|
import Dao from "./Dao";
|
4
4
|
import "./Ticker.css";
|
5
5
|
|
6
6
|
const Ticker = () => {
|
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
|
-
|
7
|
+
API_URL = "https://daohq-ticker-ick3pj1ry-daohq.vercel.app/api/ticker";
|
8
|
+
|
9
|
+
const [daos, setDaos] = useState([]);
|
10
|
+
|
11
|
+
useEffect(() => {
|
12
|
+
// const interval = setInterval(() => {
|
13
|
+
// console.log("Logs every 5s");
|
14
|
+
// }, 5000);
|
15
|
+
|
16
|
+
getApiData();
|
17
|
+
|
18
|
+
// return () => clearInterval(interval);
|
19
|
+
}, []);
|
20
|
+
|
21
|
+
/**
|
22
|
+
* retrieves from api endpoint asynchonously
|
23
|
+
*/
|
24
|
+
const getApiData = async () => {
|
25
|
+
const response = await fetch(API_URL).then((res) => res.json());
|
26
|
+
getDaos(response);
|
27
|
+
};
|
28
|
+
|
29
|
+
/**
|
30
|
+
* set state to relevent daos data
|
31
|
+
*/
|
32
|
+
const getDaos = (response) => {
|
33
|
+
console.log(response);
|
34
|
+
setDaos(
|
35
|
+
response.map((dao) => ({
|
36
|
+
name: dao.historicalFinancials.Dao.name || "name N/A",
|
37
|
+
image: dao.historicalFinancials.Dao.daoImage || "img N/A",
|
38
|
+
symbol:
|
39
|
+
dao.historicalFinancials.Dao.tokenSymbol || "symbol N/A",
|
40
|
+
price:
|
41
|
+
Math.round(1000 * dao.historicalFinancials.Dao.tokenPrice) /
|
42
|
+
1000 || "$-.--",
|
43
|
+
change24hr:
|
44
|
+
dao.historicalFinancials.Dao.percentChange24hr ||
|
45
|
+
"change N/A",
|
46
|
+
chart: "N/A",
|
47
|
+
}))
|
48
|
+
);
|
49
|
+
};
|
50
|
+
|
51
|
+
// const data = [
|
52
|
+
// {
|
53
|
+
// name: "DAOHQIndex",
|
54
|
+
// symbol: "$DAOHQIDX*",
|
55
|
+
// price: "$9.99",
|
56
|
+
// change: "+0.99",
|
57
|
+
// chart: "chart",
|
58
|
+
// },
|
59
|
+
// {
|
60
|
+
// name: "Ape Coin1",
|
61
|
+
// symbol: "$APE1*",
|
62
|
+
// price: "$23.02",
|
63
|
+
// change: "+0.85%",
|
64
|
+
// chart: "chart",
|
65
|
+
// },
|
66
|
+
// {
|
67
|
+
// name: "Ape Coin2",
|
68
|
+
// symbol: "$APE2*",
|
69
|
+
// price: "$23.02",
|
70
|
+
// change: "+0.85%",
|
71
|
+
// chart: "chart",
|
72
|
+
// },
|
73
|
+
// {
|
74
|
+
// name: "Ape Coin3",
|
75
|
+
// symbol: "$APE3*",
|
76
|
+
// price: "$23.02",
|
77
|
+
// change: "+0.85%",
|
78
|
+
// chart: "chart",
|
79
|
+
// },
|
80
|
+
// {
|
81
|
+
// name: "Ape Coin4",
|
82
|
+
// symbol: "$APE4*",
|
83
|
+
// price: "$23.02",
|
84
|
+
// change: "+0.85%",
|
85
|
+
// chart: "chart",
|
86
|
+
// },
|
87
|
+
// {
|
88
|
+
// name: "Ape Coin5",
|
89
|
+
// symbol: "$APE5*",
|
90
|
+
// price: "$23.02",
|
91
|
+
// change: "+0.85%",
|
92
|
+
// chart: "chart",
|
93
|
+
// },
|
94
|
+
// {
|
95
|
+
// name: "Ape Coin6",
|
96
|
+
// symbol: "$APE6*",
|
97
|
+
// price: "$23.02",
|
98
|
+
// change: "+0.85%",
|
99
|
+
// chart: "chart",
|
100
|
+
// },
|
101
|
+
// {
|
102
|
+
// name: "Ape Coin7",
|
103
|
+
// symbol: "$APE7*",
|
104
|
+
// price: "$23.02",
|
105
|
+
// change: "+0.85%",
|
106
|
+
// chart: "chart",
|
107
|
+
// },
|
108
|
+
// ];
|
109
|
+
// if (format === "wide") {
|
65
110
|
return (
|
66
111
|
<div className="TickerContainer">
|
67
|
-
<Dao key={data[0].symbol} dao={data[0]} />
|
112
|
+
{/* <Dao key={data[0].symbol} dao={data[0]} /> */}
|
68
113
|
<Marquee
|
69
114
|
speed={20}
|
70
115
|
pauseOnHover={false}
|
71
116
|
pauseOnClick
|
72
117
|
gradient={false}
|
73
118
|
>
|
74
|
-
{
|
75
|
-
return <Dao key={dao.
|
119
|
+
{daos.map((dao) => {
|
120
|
+
return <Dao key={dao.name} dao={dao} />;
|
76
121
|
})}
|
77
122
|
</Marquee>
|
78
123
|
</div>
|
79
124
|
);
|
125
|
+
// } else if (format === "card") {
|
126
|
+
// return <div>Card Format Here</div>;
|
127
|
+
// } else {
|
128
|
+
// return <div>Invalid format input</div>;
|
129
|
+
// }
|
80
130
|
};
|
81
131
|
|
82
132
|
export default Ticker;
|