diff --git a/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx b/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx index 0d14b71722f03..b259725cb7883 100644 --- a/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx +++ b/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx @@ -18,6 +18,7 @@ import React, { useMemo } from 'react'; import { createPortal } from 'react-dom'; 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'; @@ -41,7 +42,7 @@ import { import { DocumentGatewayKube } from 'teleterm/ui/DocumentGatewayKube'; import Document from 'teleterm/ui/Document'; -import { RootClusterUri } from 'teleterm/ui/uri'; +import { RootClusterUri, isDatabaseUri } from 'teleterm/ui/uri'; import { ResourcesContextProvider } from '../DocumentCluster/resourcesContext'; @@ -121,8 +122,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 and kube targets are supported. +
+
+ ); + } + case 'doc.gateway_cli_client': return ; case 'doc.gateway_kube': @@ -140,7 +154,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 72b52b28ed7b1..a76676451906d 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)}