From 63de96a658fb83cbdd11728661abfb080adf5356 Mon Sep 17 00:00:00 2001 From: TechQuery Date: Wed, 12 Jul 2023 22:23:37 +0800 Subject: [PATCH] [fix] Data Type of i18n text joining --- components/Activity/ActivityEntry.tsx | 14 ++++++++------ translation/en-US.ts | 5 +++-- translation/zh-CN.ts | 5 +++-- translation/zh-TW.ts | 5 +++-- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/components/Activity/ActivityEntry.tsx b/components/Activity/ActivityEntry.tsx index ec2fefa6..5cd78979 100644 --- a/components/Activity/ActivityEntry.tsx +++ b/components/Activity/ActivityEntry.tsx @@ -1,3 +1,4 @@ +import { FC } from 'react'; import { Button } from 'react-bootstrap'; import { diffTime } from 'web-utility'; @@ -7,7 +8,7 @@ import { TimeUnit } from '../../utils/time'; const { t } = i18n; -export type ActivityStatusTextProps = Pick< +export type ActivityStatusMeta = Pick< Activity, | 'status' | 'enrollmentStartedAt' @@ -26,7 +27,7 @@ export const getActivityStatusText = ({ eventEndedAt, judgeStartedAt, judgeEndedAt, -}: ActivityStatusTextProps) => { +}: ActivityStatusMeta) => { const now = Date.now(), isOnline = status === 'online', enrollmentStart = new Date(enrollmentStartedAt), @@ -53,11 +54,12 @@ export const getActivityStatusText = ({ ? t('judges_review') : t('activity_ended'); }; -export interface ActivityEntryProps extends ActivityStatusTextProps { + +export interface ActivityEntryProps extends ActivityStatusMeta { href: string; } -export function ActivityEntry({ +export const ActivityEntry: FC = ({ status, enrollmentStartedAt, enrollmentEndedAt, @@ -66,7 +68,7 @@ export function ActivityEntry({ judgeStartedAt, judgeEndedAt, href, -}: ActivityEntryProps) { +}) => { const now = Date.now(), isOnline = status === 'online', enrollmentStart = new Date(enrollmentStartedAt), @@ -91,4 +93,4 @@ export function ActivityEntry({ })} ); -} +}; diff --git a/translation/en-US.ts b/translation/en-US.ts index 1206ff43..4821dd34 100644 --- a/translation/en-US.ts +++ b/translation/en-US.ts @@ -1,4 +1,5 @@ import { textJoin } from 'mobx-i18n'; +import { diffTime } from 'web-utility'; export default { home_page: 'Home page', @@ -12,8 +13,8 @@ export default { idea2app_scaffolding: 'idea2app Scaffolding', registration_period: 'Registration Period', activity_period: 'Activity Period', - register_after: ({ distance, unit }: Record<'distance' | 'unit', string>) => - textJoin('Registration after', distance, unit), + register_after: ({ distance, unit }: ReturnType) => + textJoin('Registration after', distance + '', unit), accepting_applications: 'Accepting Applications', activity_ended: 'Activity ended', my_team: 'My Team', diff --git a/translation/zh-CN.ts b/translation/zh-CN.ts index e9dd5a1b..224908fd 100644 --- a/translation/zh-CN.ts +++ b/translation/zh-CN.ts @@ -1,4 +1,5 @@ import { textJoin } from 'mobx-i18n'; +import { diffTime } from 'web-utility'; export default { home_page: '主页', @@ -12,8 +13,8 @@ export default { idea2app_scaffolding: 'idea2app 脚手架强力驱动', registration_period: '报名时段', activity_period: '活动时段', - register_after: ({ distance, unit }: Record<'distance' | 'unit', string>) => - textJoin(distance, unit, '后开始报名'), + register_after: ({ distance, unit }: ReturnType) => + textJoin(distance + '', unit, '后开始报名'), accepting_applications: '正在报名', activity_ended: '比赛结束', my_team: '我的团队', diff --git a/translation/zh-TW.ts b/translation/zh-TW.ts index 9abe6ff7..ac57403f 100644 --- a/translation/zh-TW.ts +++ b/translation/zh-TW.ts @@ -1,4 +1,5 @@ import { textJoin } from 'mobx-i18n'; +import { diffTime } from 'web-utility'; export default { home_page: '主頁', @@ -12,8 +13,8 @@ export default { idea2app_scaffolding: 'idea2app 腳手架強力驅動', registration_period: '報名時段', activity_period: '活動時段', - register_after: ({ distance, unit }: Record<'distance' | 'unit', string>) => - textJoin(distance, unit, '後開始報名'), + register_after: ({ distance, unit }: ReturnType) => + textJoin(distance + '', unit, '後開始報名'), accepting_applications: '正在報名', activity_ended: '比賽結束', my_team: '我的團隊',