Corrigir sincronizacao automatica do RustDesk com o backend
- Corrigir indentacao do useEffect que dispara ensureRustdesk - Adicionar logs detalhados em handleRustdeskProvision e ensureRustdesk - Logs ajudam a diagnosticar falhas na sincronizacao do acesso remoto 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
01a16b7e5e
commit
736282a805
1 changed files with 36 additions and 13 deletions
|
|
@ -831,40 +831,63 @@ const resolvedAppUrl = useMemo(() => {
|
|||
|
||||
const handleRustdeskProvision = useCallback(
|
||||
async (payload: RustdeskProvisioningResult) => {
|
||||
if (!store) return
|
||||
logDesktop("rustdesk:provision:start", { id: payload.id, hasStore: !!store })
|
||||
if (!store) {
|
||||
logDesktop("rustdesk:provision:skip:no-store")
|
||||
return
|
||||
}
|
||||
const normalized: RustdeskInfo = {
|
||||
...payload,
|
||||
installedVersion: payload.installedVersion ?? null,
|
||||
lastSyncedAt: rustdeskInfoRef.current?.lastSyncedAt ?? null,
|
||||
lastError: null,
|
||||
}
|
||||
try {
|
||||
await writeRustdeskInfo(store, normalized)
|
||||
logDesktop("rustdesk:provision:saved", { id: normalized.id })
|
||||
} catch (error) {
|
||||
logDesktop("rustdesk:provision:save-error", { error: String(error) })
|
||||
throw error
|
||||
}
|
||||
setRustdeskInfo(normalized)
|
||||
try {
|
||||
await syncRemoteAccessNow(normalized)
|
||||
logDesktop("rustdesk:provision:synced", { id: normalized.id })
|
||||
} catch (error) {
|
||||
logDesktop("rustdesk:provision:sync-error", { error: String(error) })
|
||||
}
|
||||
},
|
||||
[store, syncRemoteAccessNow]
|
||||
)
|
||||
|
||||
const ensureRustdesk = useCallback(async () => {
|
||||
if (!store) return null
|
||||
logDesktop("rustdesk:ensure:start", { hasStore: !!store, machineId: config?.machineId ?? null })
|
||||
if (!store) {
|
||||
logDesktop("rustdesk:ensure:skip:no-store")
|
||||
return null
|
||||
}
|
||||
if (!config?.machineId) {
|
||||
logDesktop("rustdesk:skip:no-machine-id")
|
||||
return null
|
||||
}
|
||||
setIsRustdeskProvisioning(true)
|
||||
try {
|
||||
logDesktop("rustdesk:ensure:invoking", { machineId: config.machineId })
|
||||
const payload = await invoke<RustdeskProvisioningResult>("ensure_rustdesk_and_emit", {
|
||||
configString: RUSTDESK_CONFIG_STRING || null,
|
||||
password: RUSTDESK_DEFAULT_PASSWORD || null,
|
||||
machineId: config.machineId,
|
||||
})
|
||||
logDesktop("rustdesk:ensure:invoked", { id: payload.id, version: payload.installedVersion })
|
||||
await handleRustdeskProvision(payload)
|
||||
logDesktop("rustdesk:ensure:complete", { id: payload.id })
|
||||
return payload
|
||||
} catch (error) {
|
||||
const message = error instanceof Error ? error.message : String(error)
|
||||
if (message.toLowerCase().includes("apenas no windows")) {
|
||||
console.info("Provisionamento do RustDesk ignorado (plataforma não suportada)")
|
||||
} else {
|
||||
logDesktop("rustdesk:ensure:error", { error: message })
|
||||
console.error("Falha ao provisionar RustDesk", error)
|
||||
}
|
||||
return null
|
||||
|
|
@ -916,7 +939,7 @@ const resolvedAppUrl = useMemo(() => {
|
|||
syncRemoteAccessNow(rustdeskInfo)
|
||||
}
|
||||
}
|
||||
}, [store, config?.machineId, rustdeskInfo, ensureRustdesk, syncRemoteAccessNow, isRustdeskProvisioning])
|
||||
}, [store, config?.machineId, rustdeskInfo, ensureRustdesk, syncRemoteAccessNow, isRustdeskProvisioning])
|
||||
|
||||
async function register() {
|
||||
if (!profile) return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue