mirror of
https://github.com/plausible/analytics.git
synced 2024-12-01 11:56:19 +03:00
e8f20e67cc
* Load dashboard with react * Rename stast2 to dashboard * Save timeframe on the frontend * Implement current visitors * Implement comparisons * React to route changes * Add modals * Show number of visitors on hover * Show 'Today' for today * Add 30 days * Show referrer drilldown * Arrow keys to go back and forward * Improve comparisons UI * Fix dropdown when clicking on it * Verify API access in a memoized fashion * Test API access * Test stats through controller * Move map formatting from stats controller to stats * Remove unused code * Remove dead code from query * Remove dead code from stats templates * Add stats view test back in * Render modal inside the modal component * Implement google search terms * Add explanation for screen sizes * Separate dashboard JS from the app js
25 lines
705 B
JavaScript
25 lines
705 B
JavaScript
const THOUSAND = 1000
|
|
const HUNDRED_THOUSAND = 100000
|
|
const MILLION = 1000000
|
|
const HUNDRED_MILLION = 100000000
|
|
|
|
export default function numberFormatter(num) {
|
|
if (num >= THOUSAND && num < MILLION) {
|
|
const thousands = num / THOUSAND
|
|
if (thousands === Math.floor(thousands) || num >= HUNDRED_THOUSAND) {
|
|
return Math.floor(thousands) + 'k'
|
|
} else {
|
|
return (Math.floor(thousands * 10) / 10) + 'k'
|
|
}
|
|
} else if (num >= MILLION && num < HUNDRED_MILLION) {
|
|
const millions = num / MILLION
|
|
if (millions === Math.floor(millions)) {
|
|
return Math.floor(millions) + 'm'
|
|
} else {
|
|
return (Math.floor(millions * 10) / 10) + 'm'
|
|
}
|
|
} else {
|
|
return num
|
|
}
|
|
}
|