chore: back to setTimeout
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							e421ebf508
						
					
				
				
					commit
					6b88a6d19d
				
			@@ -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<string>(() => {
 | 
			
		||||
		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);
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user