fix: cannot get account occasionally (#516)
All checks were successful
Build and Deploy / build-and-deploy (push) Has been skipped
Build and Push Docker Images / build (push) Has been skipped

This commit is contained in:
dribble-njr 2025-01-13 17:44:35 +08:00 committed by GitHub
parent 49c3231012
commit 5b8b5496c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -24,6 +24,10 @@ const form = ref<Post>({
const allowPost = computed(() => extensionInstalled.value && form.value.accounts.some(a => a.checked))
async function prePost() {
if (extensionInstalled.value && allAccounts.value.length === 0) {
await getAccounts()
}
let auto: Post = {
thumb: ``,
title: ``,
@ -32,7 +36,7 @@ async function prePost() {
markdown: ``,
accounts: [],
}
const accounts = allAccounts.value.filter(a => !['weixin', 'ipfs'].includes(a.type))
const accounts = allAccounts.value.filter(a => ![`weixin`, `ipfs`].includes(a.type))
try {
auto = {
thumb: document.querySelector<HTMLImageElement>(`#output img`)?.src ?? ``,
@ -64,9 +68,12 @@ declare global {
}
}
async function getAccounts() {
await window.$syncer?.getAccounts((resp: PostAccount[]) => {
allAccounts.value = resp.map(a => ({ ...a, checked: true }))
async function getAccounts(): Promise<void> {
return new Promise((resolve) => {
window.$syncer?.getAccounts((resp: PostAccount[]) => {
allAccounts.value = resp.map(a => ({ ...a, checked: true }))
resolve()
})
})
}
@ -90,10 +97,10 @@ function checkExtension() {
// 5 500ms
let count = 0
const timer = setInterval(() => {
const timer = setInterval(async () => {
if (window.$syncer !== undefined) {
extensionInstalled.value = true
getAccounts()
await getAccounts()
clearInterval(timer)
return
}