From 8a6dab356023a40547e96e687a39eaaa84d1c30b Mon Sep 17 00:00:00 2001 From: Julian Mills Date: Thu, 25 Apr 2024 13:00:57 +0100 Subject: [PATCH] fix: re-connect on details changed fixes #217 --- src/components/Scaffold/modals/connection.tsx | 2 ++ src/connection.tsx | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/components/Scaffold/modals/connection.tsx b/src/components/Scaffold/modals/connection.tsx index 13ceba96..97ba870b 100644 --- a/src/components/Scaffold/modals/connection.tsx +++ b/src/components/Scaffold/modals/connection.tsx @@ -17,6 +17,7 @@ import { ConnectionDetails } from "../../ConnectionDetails"; import { useSetting } from "~/hooks/config"; import { useIntent } from "~/hooks/url"; import { useDatabaseStore } from "~/stores/database"; +import { openConnection } from "~/connection"; function buildName(n: number) { return `New connection ${n ? n + 1 : ""}`.trim(); @@ -59,6 +60,7 @@ export function ConnectionEditor() { } updateTitle(); + openConnection(); }); const generateName = useStable(() => { diff --git a/src/connection.tsx b/src/connection.tsx index 8ba87932..07086a1f 100644 --- a/src/connection.tsx +++ b/src/connection.tsx @@ -10,7 +10,7 @@ import { ConnectedEvent, DisconnectedEvent } from './util/global-events'; import { useInterfaceStore } from "./stores/interface"; import { useConfigStore } from "./stores/config"; import { compare } from "semver"; -import { objectify } from "radash"; +import { objectify, sleep } from "radash"; import { getLiveQueries } from "./util/surrealql"; const printMsg = (...args: any[]) => printLog("Conn", "#1cccfc", ...args); @@ -150,11 +150,12 @@ export async function openConnection(options?: ConnectOptions) { /** * Close the active surreal connection */ -export function closeConnection() { +export async function closeConnection() { const status = SURREAL.status; if (status === "connected" || status === "connecting") { - return SURREAL.close(); + await SURREAL.close(); + await sleep(100); } }