diff --git a/packages/frontend/src/components/global/MkTime.vue b/packages/frontend/src/components/global/MkTime.vue index 1e60e3ee44..43665780f1 100644 --- a/packages/frontend/src/components/global/MkTime.vue +++ b/packages/frontend/src/components/global/MkTime.vue @@ -11,8 +11,6 @@ import { onUnmounted } from 'vue'; import { i18n } from '@/i18n'; import { dateTimeFormat } from '@/scripts/intl-const'; -import { defaultIdlingRenderScheduler } from '@/scripts/idle-render.js'; - const props = withDefaults(defineProps<{ time: Date | string | number | null; origin?: Date | null; @@ -46,16 +44,19 @@ const relative = $computed(() => { i18n.ts._ago.future); }); -function tick(): void { +let tickId: number; + +function tick() { now = props.origin ?? (new Date()).getTime(); + const ago = (now - _time) / 1000/*ms*/; + const next = ago < 60 ? 10000 : ago < 3600 ? 60000 : 180000; + tickId = window.setTimeout(tick, next); } if (props.mode === 'relative' || props.mode === 'detail') { tick(); - defaultIdlingRenderScheduler.add(tick); - onUnmounted(() => { - defaultIdlingRenderScheduler.delete(tick); + window.clearTimeout(tickId); }); }