From ca15f0af36f23845a6deda4548e4b853bae492f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9B=90=EB=8D=94?= Date: Sun, 10 Jan 2021 12:29:58 +0900 Subject: [PATCH] fix: https://github.com/koreanbots/v2-testing/issues/4 --- pages/bots/[id].tsx | 10 +++++----- utils/Tools.ts | 26 +++++++++----------------- utils/index.ts | 4 ++-- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/pages/bots/[id].tsx b/pages/bots/[id].tsx index 148d865..80ff42b 100644 --- a/pages/bots/[id].tsx +++ b/pages/bots/[id].tsx @@ -14,11 +14,12 @@ import NotFound from '../404' import SEO from '../../components/SEO' import LongButton from '../../components/LongButton' import { git, Status } from '../../utils/Constants' -import { Fetch, formatNumber } from '../../utils' +import { Fetch } from '../../utils' +import { formatNumber } from '../../utils/Tools' import Advertisement from '../../components/Advertisement' import Link from 'next/link' -const Bots: NextPage = ({ data, date, votes }) => { +const Bots: NextPage = ({ data, date }) => { if (!data.id) return return ( @@ -78,7 +79,7 @@ const Bots: NextPage = ({ data, date, votes }) => { 하트 추가 - {votes} + {formatNumber(data.votes)} @@ -206,8 +207,7 @@ export const getServerSideProps = async (ctx: Context) => { return { props: { data, - date: SnowflakeUtil.deconstruct(data.id ?? '0').date.toJSON(), - votes: formatNumber(data.votes ?? 0, 3), + date: SnowflakeUtil.deconstruct(data.id ?? '0').date.toJSON() }, } } diff --git a/utils/Tools.ts b/utils/Tools.ts index 81772a5..6d89a83 100644 --- a/utils/Tools.ts +++ b/utils/Tools.ts @@ -1,26 +1,18 @@ import { UserPemissionFlags } from '../types' import { perms } from './Constants' -function formatNumber(num: number, digits = 1) { - const si = [ - { value: 1, symbol: '' }, - { value: 1e3, symbol: '천' }, - { value: 1e4, symbol: '만' }, - { value: 1e8, symbol: '억' }, - { value: 1e12, symbol: '조' }, - { value: 1e16, symbol: '해' }, - ] - const rx = /\.0+$|(\.[0-9]*[1-9])0+$/ - let i - for (i = si.length - 1; i > 0; i--) { - if (num >= si[i].value) { - break - } +function formatNumber(value: number):string { + const suffixes = ['', '만', '억', '조','해'] + const suffixNum = Math.floor((''+value).length/4) + let shortValue:string|number = parseFloat((suffixNum != 0 ? (value / Math.pow(10000,suffixNum)) : value).toPrecision(2)) + if (shortValue % 1 != 0) { + shortValue = shortValue.toFixed(1) } - return (num / si[i].value).toFixed(digits).replace(rx, '$1') + si[i].symbol + if(suffixNum === 1 && shortValue < 1) return Number(shortValue) * 10 + '천' + return shortValue+suffixes[suffixNum] } -function checkPerm(base: number, required: number | UserPemissionFlags) { +function checkPerm(base: number, required: number | UserPemissionFlags):boolean { required = typeof required === 'number' ? required : perms[required] if (typeof required !== 'number' && !required) throw new Error('올바르지 않은 권한입니다.') return (base & required) === required diff --git a/utils/index.ts b/utils/index.ts index df7ac30..6e0173a 100644 --- a/utils/index.ts +++ b/utils/index.ts @@ -1,6 +1,6 @@ import * as Query from './Query' -import { formatNumber } from './Tools' +import { } from './Tools' import ResponseWrapper from './ResponseWrapper' import Fetch from './Fetch' -export { Query, Fetch, ResponseWrapper, formatNumber } +export { Query, Fetch, ResponseWrapper }