From b01c17e7095cdc2bfb2ccef340123db3585a60ac Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Mon, 18 May 2026 18:16:25 +0800 Subject: [PATCH] feat(web): support driver management --- Cargo.lock | 2 + apps/desktop/src/App.vue | 9 +- .../components/config/DriverStoreDialog.vue | 60 +-- .../connection/ConnectionDialog.vue | 7 +- apps/desktop/src/lib/api.ts | 16 + apps/desktop/src/lib/http.ts | 62 +++ apps/desktop/src/lib/tauri.ts | 78 +++ crates/dbx-web/Cargo.toml | 2 + crates/dbx-web/src/main.rs | 14 + crates/dbx-web/src/routes/agents.rs | 501 ++++++++++++++++++ crates/dbx-web/src/routes/mod.rs | 1 + .../app-tests/webDriverManagement.test.ts | 39 ++ .../app-tests/webRuntimeCompatibility.test.ts | 24 + 13 files changed, 766 insertions(+), 49 deletions(-) create mode 100644 crates/dbx-web/src/routes/agents.rs create mode 100644 packages/app-tests/webDriverManagement.test.ts create mode 100644 packages/app-tests/webRuntimeCompatibility.test.ts diff --git a/Cargo.lock b/Cargo.lock index 98c5e3c10..c0a5e312a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1766,9 +1766,11 @@ dependencies = [ "argon2", "async-stream", "axum", + "chrono", "dbx-core", "futures", "log", + "reqwest 0.12.28", "rustls 0.23.40", "serde", "serde_json", diff --git a/apps/desktop/src/App.vue b/apps/desktop/src/App.vue index c795639ba..f940cdd5d 100644 --- a/apps/desktop/src/App.vue +++ b/apps/desktop/src/App.vue @@ -623,14 +623,16 @@ function handleContextMenu(e: MouseEvent) { e.preventDefault(); } +function openDriverStoreFromEvent() { + showDriverStore.value = true; +} + onMounted(async () => { console.log("[STARTUP] onMounted begin"); const mountStart = performance.now(); applyTheme(); window.addEventListener("keydown", handleKeydown, true); - window.addEventListener("dbx-open-driver-store", () => { - showDriverStore.value = true; - }); + window.addEventListener("dbx-open-driver-store", openDriverStoreFromEvent); if (isDesktop) { document.addEventListener("contextmenu", handleContextMenu); } @@ -684,6 +686,7 @@ onUnmounted(() => { clearInterval(updateCheckTimer); } window.removeEventListener("keydown", handleKeydown, true); + window.removeEventListener("dbx-open-driver-store", openDriverStoreFromEvent); document.removeEventListener("contextmenu", handleContextMenu); }); diff --git a/apps/desktop/src/components/config/DriverStoreDialog.vue b/apps/desktop/src/components/config/DriverStoreDialog.vue index e3ac7c10f..56be272e2 100644 --- a/apps/desktop/src/components/config/DriverStoreDialog.vue +++ b/apps/desktop/src/components/config/DriverStoreDialog.vue @@ -1,8 +1,5 @@