From 1e681c3123d9977d0623f0648e9cf87e6a4c4255 Mon Sep 17 00:00:00 2001
From: Maria Rushkova <66270386+mrushkova@users.noreply.github.com>
Date: Tue, 6 Jul 2021 14:02:27 +0200
Subject: [PATCH] Add count animation (#87)
---
packages/DApp/package.json | 2 ++
.../DApp/src/components/votes/VoteChart.tsx | 16 +++++++++--
yarn.lock | 28 +++++++++++++++++++
3 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/packages/DApp/package.json b/packages/DApp/package.json
index a09fa70..6e7a134 100644
--- a/packages/DApp/package.json
+++ b/packages/DApp/package.json
@@ -37,6 +37,7 @@
"@types/mocha": "^8.2.2",
"@types/node": "^15.12.4",
"@types/react": "^17.0.8",
+ "@types/react-countup": "^4.3.1",
"@types/react-dom": "^17.0.6",
"@types/react-router": "^5.1.14",
"@types/react-router-dom": "^5.1.7",
@@ -58,6 +59,7 @@
"jsdom-global": "^3.0.2",
"mocha": "^8.4.0",
"prettier": "^2.3.0",
+ "react-countup": "^4.4.0",
"source-map-loader": "^3.0.0",
"ts-node": "^10.0.0",
"typescript": "^4.3.2",
diff --git a/packages/DApp/src/components/votes/VoteChart.tsx b/packages/DApp/src/components/votes/VoteChart.tsx
index 8d2d67b..665bfe2 100644
--- a/packages/DApp/src/components/votes/VoteChart.tsx
+++ b/packages/DApp/src/components/votes/VoteChart.tsx
@@ -1,11 +1,11 @@
import React from 'react'
+import CountUp from 'react-countup'
import styled from 'styled-components'
import { Colors } from '../../constants/styles'
import { addCommas } from '../../helpers/addCommas'
import { VoteType, voteTypes } from './../../constants/voteTypes'
import { CurrentVoting } from '../../models/community'
import { VoteGraphBar } from './VoteGraphBar'
-
import { formatTimeLeft } from '../../helpers/fomatTimeLeft'
export interface VoteChartProps {
@@ -42,7 +42,12 @@ export function VoteChart({ vote, voteWinner, proposingAmount, selectedVote, isA
{' '}
- {addCommas(vote.voteAgainst.toNumber())} SNT
+ {isAnimation && proposingAmount && selectedVote && selectedVote.type === 0 ? (
+
+ ) : (
+ addCommas(votesAgainst)
+ )}{' '}
+ SNT
{formatTimeLeft(vote.timeLeft)}
@@ -52,7 +57,12 @@ export function VoteChart({ vote, voteWinner, proposingAmount, selectedVote, isA
{' '}
- {addCommas(vote.voteFor.toNumber())} SNT
+ {isAnimation && proposingAmount && selectedVote && selectedVote.type === 1 ? (
+
+ ) : (
+ addCommas(votesFor)
+ )}{' '}
+ SNT
diff --git a/yarn.lock b/yarn.lock
index b4e10ff..59d3814 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2274,6 +2274,13 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
+"@types/react-countup@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/@types/react-countup/-/react-countup-4.3.1.tgz#5bba8e11c18549c92f9a6efe07e406c92c970f89"
+ integrity sha512-8KwOdVVKhMOdtXJoOg3YXZwWxnFnZtPojNs/DZRlhHTpOYIb1If+9+rVPnwnXDhNhphj5diUCds9E26VtVK8IA==
+ dependencies:
+ react-countup "*"
+
"@types/react-dom@>=16.9.0":
version "17.0.7"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.7.tgz#b8ee15ead9e5d6c2c858b44949fdf2ebe5212232"
@@ -4866,6 +4873,11 @@ cosmiconfig@^6.0.0:
path-type "^4.0.0"
yaml "^1.7.2"
+countup.js@^1.9.3:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/countup.js/-/countup.js-1.9.3.tgz#ce3e50cd7160441e478f07da31895edcc0f1c9dd"
+ integrity sha1-zj5QzXFgRB5HjwfaMYle3MDxyd0=
+
create-ecdh@^4.0.0:
version "4.0.4"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
@@ -10957,6 +10969,15 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
+react-countup@*, react-countup@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/react-countup/-/react-countup-4.4.0.tgz#ca5c0a971c442a06a7bc52f3921ad2e66ba65990"
+ integrity sha512-PSSpvRT5FCjCVh3NzPpz/SgeG8b9LnpfCSO1TEMK8K/GhmxI+s8D/KbxGCFsmmeq+Y0cnf2KepUHssPfH/7iyw==
+ dependencies:
+ countup.js "^1.9.3"
+ prop-types "^15.7.2"
+ warning "^4.0.3"
+
react-dom@^17.0.2:
version "17.0.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
@@ -13166,6 +13187,13 @@ w3c-xmlserializer@^2.0.0:
dependencies:
xml-name-validator "^3.0.0"
+warning@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
+ integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
+ dependencies:
+ loose-envify "^1.0.0"
+
watchpack@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce"