-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.html
104 lines (99 loc) · 4.64 KB
/
main.html
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
<!DOCTYPE html>
<html>
<head>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css">
<script type="text/javascript" scr="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<script type="text/javascript" scr="prices.js"></script>
</head>
<body>
<!-- vue root -->
<div id="app" v-cloak>
<!-- fixed header -->
<header class="header-wrap">
<div class="header-row flex-row flex-middle flex-space">
<div class="if-small">
<div class="form-input dark">
<div class="push-right">🔎</div>
<input type="text" v-model="search" placeholder="Search token..." />
</div>
</div>
<div class="text-primary if-medium">
<h1 class="text-nowrap text-condense shadow-text">Crypto 24h Change</h1>
</div>
<div class="flex-row flex-middle">
<div class="dropdown">
<div class="form-input text-nowrap shadow-box">▼ {{ limit }}</div>
<ul>
<li @click="setLimit( 0 )"><span class="text-faded">Show:</span> All</li>
<li @click="setLimit( 10 )"><span class="text-faded">Show:</span> 10</li>
<li @click="setLimit( 20 )"><span class="text-faded">Show:</span> 20</li>
<li @click="setLimit( 50 )"><span class="text-faded">Show:</span> 50</li>
<li @click="setLimit( 100 )"><span class="text-faded">Show:</span> 100</li>
</ul>
</div>
<div class="dropdown">
<div class="form-input text-nowrap shadow-box">▼ {{ sortLabel }}</div>
<ul>
<li @click="sortBy( 'token', 'asc' )"><span class="text-faded">Sort:</span> Token</li>
<li @click="sortBy( 'close', 'desc' )"><span class="text-faded">Sort:</span> Price</li>
<li @click="sortBy( 'assetVolume', 'desc' )"><span class="text-faded">Sort:</span> Volume</li>
<li @click="sortBy( 'percent', 'desc' )"><span class="text-faded">Sort:</span> Percent</li>
<li @click="sortBy( 'change', 'desc' )"><span class="text-faded">Sort:</span> Change</li>
<li @click="sortBy( 'trades', 'desc' )"><span class="text-faded">Sort:</span> Trades</li>
</ul>
</div>
<div class="dropdown">
<div class="form-input text-nowrap shadow-box">▼ {{ asset }}</div>
<ul>
<li @click="filterAsset( 'BTC' )"><span class="text-faded">Asset:</span> BTC</li>
<li @click="filterAsset( 'ETH' )"><span class="text-faded">Asset:</span> ETH</li>
<li @click="filterAsset( 'BNB' )"><span class="text-faded">Asset:</span> BNB</li>
<li @click="filterAsset( 'USDT' )"><span class="text-faded">Asset:</span> USDT</li>
</ul>
</div>
</div>
</div>
</header>
<!-- price list grid -->
<main class="main-wrap">
<div class="main-grid-list">
<div class="main-grid-item" v-for="c in coinsList" :key="c.symbol" :class="c.style">
<div class="main-grid-info flex-row flex-top flex-stretch">
<div class="push-right">
<img :src="c.icon" :alt="c.pair" />
</div>
<div class="flex-1 shadow-text">
<div class="flex-row flex-top flex-space">
<div class="text-left text-clip push-right">
<h1 class="text-primary text-clip">{{ c.token }}<small class="text-faded text-small text-condense">/{{ c.asset }}</small></h1>
<h2 class="text-bright text-clip">{{ c.close | toFixed( asset ) }}</h2>
</div>
<div class="text-right">
<div class="color text-big text-clip">{{ c.arrow }} {{ c.sign }}{{ c.percent | toFixed( 2 ) }}%</div>
<div class="text-clip">{{ c.sign }}{{ c.change | toFixed( asset ) }} <small class="text-faded">24h</small></div>
<div class="text-clip">{{ c.assetVolume | toMoney }} <small class="text-faded">Vol</small></div>
</div>
</div>
</div>
</div>
<div class="main-grid-chart">
<linechart :width="600" :height="40" :values="c.history"></linechart>
</div>
</div>
</div>
</main>
<!-- socket loader -->
<div class="loader-wrap" :class="{ 'visible': loaderVisible }">
<div class="loader-content">
<div v-if="status === 0"><i>📡</i> <br /> Connecting to Socket API ...</div>
<div v-else-if="status === 1"><i>💬</i> <br /> Waiting for data from Socket API ...</div>
<div v-else-if="status === 2"><i>😃</i> <br /> Connected to the Socket API</div>
<div v-else-if="status === -1"><i>😡</i> <br /> Error connecting to the Socket API</div>
</div>
</div>
</div>
</body>
</html>