explorer: format date to ISO

Change-Id: I98215540309d5ea560d28f7c30e17ab694a1b43b
This commit is contained in:
justinschuldt 2021-10-29 04:10:28 -05:00 committed by Justin Schuldt
parent 6fb8cdfd01
commit aae5d7450f
6 changed files with 67 additions and 21 deletions

1
explorer/.npmrc Normal file
View File

@ -0,0 +1 @@
save-exact=true

View File

@ -22,6 +22,7 @@
"antd": "^4.15.4",
"babel-plugin-module-resolver": "^4.0.0",
"bridge": "file:./wasm/core",
"bs58": "4.0.1",
"core-js": "2.6.10",
"dotenv": "^8.2.0",
"esm": "^3.2.25",
@ -42,7 +43,7 @@
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-helmet": "^5.2.1",
"react-time-ago": "^6.2.2",
"react-time-ago": "^7.1.3",
"token_bridge": "file:./wasm/token"
},
"devDependencies": {
@ -54,6 +55,7 @@
"@storybook/react": "^5.3.13",
"@testing-library/jest-dom": "^5.1.1",
"@testing-library/react": "^9.4.0",
"@types/bs58": "4.0.1",
"@types/google-protobuf": "^3.15.2",
"@types/javascript-time-ago": "^2.0.2",
"@types/jest": "^25.1.3",
@ -6178,6 +6180,15 @@
"@types/node": "*"
}
},
"node_modules/@types/bs58": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.1.tgz",
"integrity": "sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA==",
"dev": true,
"dependencies": {
"base-x": "^3.0.6"
}
},
"node_modules/@types/common-tags": {
"version": "1.8.0",
"integrity": "sha512-htRqZr5qn8EzMelhX/Xmx142z218lLyGaeZ3YR8jlze4TATRU9huKKvuBmAJEW4LCC4pnY1N6JAm6p85fMHjhg=="
@ -18535,10 +18546,12 @@
}
},
"node_modules/javascript-time-ago": {
"version": "2.3.5",
"integrity": "sha512-e1/cNro8WnheBWc6PTN5zYqZUmtu96AmH7xjAYkBL1TN8C8lJm0PDvt4g5DlYwkMlRWyzD++xoPS3ldmV6Aj8A==",
"version": "2.3.10",
"resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.3.10.tgz",
"integrity": "sha512-eeZx3B8ACZpFTiaow4Xl3YTIG9UjebwVjHEDnKyzJ1NBve1ZqJIgy97yoT9Esw+Vf+XgSk4YCpOsyK5X/ByRzQ==",
"peer": true,
"dependencies": {
"relative-time-format": "^1.0.5"
"relative-time-format": "^1.0.6"
}
},
"node_modules/jayson": {
@ -24712,14 +24725,15 @@
}
},
"node_modules/react-time-ago": {
"version": "6.2.2",
"integrity": "sha512-8X4GDw3V9sUs4DJtGDkNzasmT2+TPrP911SYlnQpcY8qj4Byk1JwLhgjlhN8zP1ugrTxOUFuEeYi5pZLlYmMpg==",
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/react-time-ago/-/react-time-ago-7.1.3.tgz",
"integrity": "sha512-H+mhWft++gNt2x8Y9eAZ9vYwL6giPDnVIo68Ty7xFTJ2L+Tt7cyZ1sbMkTMKzHeeaQ+J8F2vt3PatdW6mFJmWQ==",
"dependencies": {
"javascript-time-ago": "^2.3.3",
"prop-types": "^15.7.2",
"raf": "^3.4.1"
},
"peerDependencies": {
"javascript-time-ago": "^2.3.7",
"react": ">=0.16.8",
"react-dom": ">=0.16.8"
}
@ -25020,8 +25034,10 @@
}
},
"node_modules/relative-time-format": {
"version": "1.0.5",
"integrity": "sha512-MAgx/YKcUQYJpIaWcfetPstElnWf26JxVis4PirdwVrrymFdbxyCSm6yENpfB1YuwFbtHSHksN3aBajVNxk10Q=="
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.0.6.tgz",
"integrity": "sha512-voemOJLxlKun4P1fAo4PEg2WXNGjhqfE/G8Xen4gcy24Hyu/djn5bT5axmhx4MnjynoZ8f0HCOjk3RZpsY6X/g==",
"peer": true
},
"node_modules/remark-mdx": {
"version": "2.0.0-next.9",
@ -34874,6 +34890,15 @@
"@types/node": "*"
}
},
"@types/bs58": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/bs58/-/bs58-4.0.1.tgz",
"integrity": "sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA==",
"dev": true,
"requires": {
"base-x": "^3.0.6"
}
},
"@types/common-tags": {
"version": "1.8.0",
"integrity": "sha512-htRqZr5qn8EzMelhX/Xmx142z218lLyGaeZ3YR8jlze4TATRU9huKKvuBmAJEW4LCC4pnY1N6JAm6p85fMHjhg=="
@ -44653,10 +44678,12 @@
}
},
"javascript-time-ago": {
"version": "2.3.5",
"integrity": "sha512-e1/cNro8WnheBWc6PTN5zYqZUmtu96AmH7xjAYkBL1TN8C8lJm0PDvt4g5DlYwkMlRWyzD++xoPS3ldmV6Aj8A==",
"version": "2.3.10",
"resolved": "https://registry.npmjs.org/javascript-time-ago/-/javascript-time-ago-2.3.10.tgz",
"integrity": "sha512-eeZx3B8ACZpFTiaow4Xl3YTIG9UjebwVjHEDnKyzJ1NBve1ZqJIgy97yoT9Esw+Vf+XgSk4YCpOsyK5X/ByRzQ==",
"peer": true,
"requires": {
"relative-time-format": "^1.0.5"
"relative-time-format": "^1.0.6"
}
},
"jayson": {
@ -49424,10 +49451,10 @@
}
},
"react-time-ago": {
"version": "6.2.2",
"integrity": "sha512-8X4GDw3V9sUs4DJtGDkNzasmT2+TPrP911SYlnQpcY8qj4Byk1JwLhgjlhN8zP1ugrTxOUFuEeYi5pZLlYmMpg==",
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/react-time-ago/-/react-time-ago-7.1.3.tgz",
"integrity": "sha512-H+mhWft++gNt2x8Y9eAZ9vYwL6giPDnVIo68Ty7xFTJ2L+Tt7cyZ1sbMkTMKzHeeaQ+J8F2vt3PatdW6mFJmWQ==",
"requires": {
"javascript-time-ago": "^2.3.3",
"prop-types": "^15.7.2",
"raf": "^3.4.1"
}
@ -49666,8 +49693,10 @@
"dev": true
},
"relative-time-format": {
"version": "1.0.5",
"integrity": "sha512-MAgx/YKcUQYJpIaWcfetPstElnWf26JxVis4PirdwVrrymFdbxyCSm6yENpfB1YuwFbtHSHksN3aBajVNxk10Q=="
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/relative-time-format/-/relative-time-format-1.0.6.tgz",
"integrity": "sha512-voemOJLxlKun4P1fAo4PEg2WXNGjhqfE/G8Xen4gcy24Hyu/djn5bT5axmhx4MnjynoZ8f0HCOjk3RZpsY6X/g==",
"peer": true
},
"remark-mdx": {
"version": "2.0.0-next.9",

View File

@ -61,6 +61,7 @@
"antd": "^4.15.4",
"babel-plugin-module-resolver": "^4.0.0",
"bridge": "file:./wasm/core",
"bs58": "4.0.1",
"core-js": "2.6.10",
"dotenv": "^8.2.0",
"esm": "^3.2.25",
@ -81,7 +82,7 @@
"react": "^16.12.0",
"react-dom": "^16.12.0",
"react-helmet": "^5.2.1",
"react-time-ago": "^6.2.2",
"react-time-ago": "^7.1.3",
"token_bridge": "file:./wasm/token"
},
"devDependencies": {
@ -93,6 +94,7 @@
"@storybook/react": "^5.3.13",
"@testing-library/jest-dom": "^5.1.1",
"@testing-library/react": "^9.4.0",
"@types/bs58": "4.0.1",
"@types/google-protobuf": "^3.15.2",
"@types/javascript-time-ago": "^2.0.2",
"@types/jest": "^25.1.3",

View File

@ -135,8 +135,10 @@ const Stats: React.FC<StatsProps> = ({ emitterChain, emitterAddress }) => {
const { signal } = newController;
// start polling
let interval = setInterval(() => {
getData({ emitterChain, emitterAddress }, baseUrl, signal)
}, 4000)
getData({ emitterChain, emitterAddress }, baseUrl, signal).catch(err => {
console.error('failed fetching data. err: ', err)
})
}, 5000)
setPollInterval(interval)
}
}

View File

@ -19,6 +19,7 @@ import { ReactComponent as EthereumIcon } from '~/icons/ethereum.svg';
import { ReactComponent as SolanaIcon } from '~/icons/solana.svg';
import { ReactComponent as TerraIcon } from '~/icons/terra.svg';
import { ReactComponent as PolygonIcon } from '~/icons/polygon.svg'
import { formatQuorumDate } from '~/utils/misc/utils';
interface RecentMessagesProps {
recent: Recent
@ -77,7 +78,7 @@ const RecentMessages = (props: RecentMessagesProps) => {
title: "attested",
dataIndex: "QuorumTime",
key: "time",
render: QuorumTime => <ReactTimeAgo date={new Date(QuorumTime)} locale={intl.locale} timeStyle={!screens.md ? "twitter" : "round"} />
render: QuorumTime => <ReactTimeAgo date={Date.parse(formatQuorumDate(QuorumTime))} locale={intl.locale} timeStyle={!screens.md ? "twitter" : "round"} />
},
{

View File

@ -0,0 +1,11 @@
type ISOString = string
const formatQuorumDate = (date: string): ISOString | string => {
if (date.includes(" +0000 UTC")) {
const formatted = date.replace(" +0000 UTC", "Z").replace(" ", "T")
return formatted
}
return date
}
export { formatQuorumDate }