diff --git a/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx b/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx index ce1c7ba890cf1..a4468a3764769 100644 --- a/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx +++ b/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx @@ -17,6 +17,7 @@ import React, { useMemo } from 'react'; import styled from 'styled-components'; +import { Text } from 'design'; /* eslint-disable @typescript-eslint/ban-ts-comment*/ // @ts-ignore import { DocumentAccessRequests } from 'e-teleterm/ui/DocumentAccessRequests/DocumentAccessRequests'; @@ -34,7 +35,7 @@ import DocumentGateway from 'teleterm/ui/DocumentGateway'; import { DocumentTerminal } from 'teleterm/ui/DocumentTerminal'; import Document from 'teleterm/ui/Document'; -import { RootClusterUri } from 'teleterm/ui/uri'; +import { RootClusterUri, isDatabaseUri } from 'teleterm/ui/uri'; import { WorkspaceContextProvider } from './workspaceContext'; import { KeyboardShortcutsPanel } from './KeyboardShortcutsPanel'; @@ -96,8 +97,21 @@ function MemoizedDocument(props: { doc: types.Document; visible: boolean }) { switch (doc.kind) { case 'doc.cluster': return ; - case 'doc.gateway': - return ; + case 'doc.gateway': { + if (isDatabaseUri(doc.targetUri)) { + return ; + } + return ( + + + Cannot create a gateway for the target "{doc.targetUri}". +
+ Only database targets are supported. +
+
+ ); + } + case 'doc.gateway_cli_client': return ; case 'doc.terminal_shell': @@ -109,7 +123,9 @@ function MemoizedDocument(props: { doc: types.Document; visible: boolean }) { default: return ( - Document kind "{doc.kind}" is not supported + + Document kind "{doc.kind}" is not supported. + ); } diff --git a/web/packages/teleterm/src/ui/TopBar/Connections/ConnectionsFilterableList/ConnectionItem.tsx b/web/packages/teleterm/src/ui/TopBar/Connections/ConnectionsFilterableList/ConnectionItem.tsx index bc044820f6c5e..41f18a1357ddc 100644 --- a/web/packages/teleterm/src/ui/TopBar/Connections/ConnectionsFilterableList/ConnectionItem.tsx +++ b/web/packages/teleterm/src/ui/TopBar/Connections/ConnectionsFilterableList/ConnectionItem.tsx @@ -20,7 +20,7 @@ import { Trash, Unlink } from 'design/Icon'; import { ExtendedTrackedConnection } from 'teleterm/ui/services/connectionTracker'; import { ListItem } from 'teleterm/ui/components/ListItem'; -import { assertUnreachable } from 'teleterm/ui/utils'; +import { isDatabaseUri } from 'teleterm/ui/uri'; import { useKeyboardArrowsNavigation } from 'teleterm/ui/components/KeyboardArrowsNavigation'; @@ -105,7 +105,7 @@ export function ConnectionItem(props: ConnectionItemProps) { border-radius: 4px; `} > - {getKindName(props.item.kind)} + {getKindName(props.item)}