From c683d203b234cdc08be67de0148ff8732b66d686 Mon Sep 17 00:00:00 2001 From: Victor Meng Date: Thu, 29 Sep 2022 23:45:17 -0700 Subject: [PATCH] Close quick start tab when user types \q in PSQL shell --- src/Explorer/Tabs/QuickstartTab.tsx | 2 +- src/hooks/useKnockoutExplorer.ts | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Explorer/Tabs/QuickstartTab.tsx b/src/Explorer/Tabs/QuickstartTab.tsx index 590ab0bb3..12c94b8e3 100644 --- a/src/Explorer/Tabs/QuickstartTab.tsx +++ b/src/Explorer/Tabs/QuickstartTab.tsx @@ -32,7 +32,7 @@ export const QuickstartTab: React.FC = ({ explorer }: Quicks )} {!notebookServerInfo?.notebookServerEndpoint && ( diff --git a/src/hooks/useKnockoutExplorer.ts b/src/hooks/useKnockoutExplorer.ts index e93d28196..5dcb0f8b6 100644 --- a/src/hooks/useKnockoutExplorer.ts +++ b/src/hooks/useKnockoutExplorer.ts @@ -1,4 +1,4 @@ -import { useTabs } from "hooks/useTabs"; +import { ReactTabKind, useTabs } from "hooks/useTabs"; import { useEffect, useState } from "react"; import { applyExplorerBindings } from "../applyExplorerBindings"; import { AuthType } from "../AuthType"; @@ -100,7 +100,11 @@ async function configureHosted(): Promise { } if (event.data?.type === MessageTypes.CloseTab) { - useTabs.getState().closeTabsByComparator((tab) => tab.tabId === event.data?.data?.tabId); + if (event.data?.data?.tabId === "QuickstartPSQLShell") { + useTabs.getState().closeReactTab(ReactTabKind.Quickstart); + } else { + useTabs.getState().closeTabsByComparator((tab) => tab.tabId === event.data?.data?.tabId); + } } }, false @@ -290,7 +294,11 @@ async function configurePortal(): Promise { } else if (shouldForwardMessage(message, event.origin)) { sendMessage(message); } else if (event.data?.type === MessageTypes.CloseTab) { - useTabs.getState().closeTabsByComparator((tab) => tab.tabId === event.data?.data?.tabId); + if (event.data?.data?.tabId === "QuickstartPSQLShell") { + useTabs.getState().closeReactTab(ReactTabKind.Quickstart); + } else { + useTabs.getState().closeTabsByComparator((tab) => tab.tabId === event.data?.data?.tabId); + } } }, false