diff --git a/packages/frontend/src/pages/qr.read.vue b/packages/frontend/src/pages/qr.read.vue index 36c833f7b2..b3cd18399a 100644 --- a/packages/frontend/src/pages/qr.read.vue +++ b/packages/frontend/src/pages/qr.read.vue @@ -46,15 +46,18 @@ const uris = ref([]); const usersSource = new Map(); const users = ref<(misskey.entities.UserDetailed)[]>([]); -let timer = ref | null>(null); +const timer = ref | null>(null); function updateUsers() { users.value = uris.value.map(uri => usersSource.get(uri)).filter(u => u) as misskey.entities.UserDetailed[]; + updateRequired.value = false; } -watch([uris, timer], () => { +const updateRequired = ref(false); + +watch(uris, () => { if (timer.value) { - console.log('Skip updateUsers because of timer'); + updateRequired.value = true; return; } @@ -63,6 +66,9 @@ watch([uris, timer], () => { timer.value = setTimeout(() => { console.log('Update users after 3 seconds'); timer.value = null; + if (updateRequired.value) { + updateUsers(); + } }, 3000); });