import React from 'react'; import {PlugConnection} from '@gravity-ui/icons'; import {ActionTooltip, Button, Icon} from '@gravity-ui/uikit'; import {getConnectToDBDialog} from '../../components/ConnectToDB/ConnectToDBDialog'; import type {PreparedTenant} from '../../store/reducers/tenants/types'; import type {AdditionalTenantsProps, ClusterLinkWithTitle} from '../../types/additionalProps'; import {CLUSTER_LINK_CONTEXT} from '../../utils/clusterLinks/clusterLinkConstants'; import {DeveloperUIControl} from './GlobalRightControls'; import {DBHeaderActionsMenu} from './HeaderActionsMenu'; import {MonitoringControl} from './MonitoringControl'; import {headerKeyset} from './i18n'; interface DatabaseRightControlsProps { database: string; clusterName?: string; databaseData?: PreparedTenant; isDatabaseDataLoading: boolean; isV2NavigationEnabled: boolean; isViewerUser?: boolean; prepareTenantBackend?: AdditionalTenantsProps['prepareTenantBackend']; showDeveloperUI: boolean; databaseLinks: ClusterLinkWithTitle[]; } export function DatabaseRightControls({ database, clusterName, databaseData, isDatabaseDataLoading, isV2NavigationEnabled, isViewerUser, prepareTenantBackend, showDeveloperUI, databaseLinks, }: DatabaseRightControlsProps) { const monitoringDatabaseLink = React.useMemo( () => databaseLinks.find((link) => link.context === CLUSTER_LINK_CONTEXT.MONITORING), [databaseLinks], ); const actionDatabaseLinks = React.useMemo( () => databaseLinks.filter((link) => link.context !== CLUSTER_LINK_CONTEXT.MONITORING), [databaseLinks], ); const showLegacyConnect = !isV2NavigationEnabled; return ( {monitoringDatabaseLink ? : null} {showLegacyConnect ? ( ) : null} {showDeveloperUI ? : null} ); }