import React from 'react';
import {CircleInfo} from '@gravity-ui/icons';
import {Button, ClipboardButton, Icon, Popover, Link as UIKitLink} from '@gravity-ui/uikit';
import {cn} from '../../utils/cn';
import {YDB_POPOVER_CLASS_NAME} from '../../utils/constants';
import {InternalLink} from '../InternalLink/InternalLink';
import './EntityName.scss';
const b = cn('ydb-entity-name');
export interface EntityNameProps {
name?: string;
renderName?: (name?: string) => React.ReactNode;
path?: string;
externalLink?: boolean;
withLeftTrim?: boolean;
hasClipboardButton?: boolean;
infoPopoverContent?: React.ReactNode;
clipboardButtonAlwaysVisible?: boolean;
leadingContent?: React.ReactNode;
className?: string;
}
function defaultRenderName(name?: string) {
return name ?? '';
}
export function EntityName({
name = '',
renderName = defaultRenderName,
path,
externalLink = false,
withLeftTrim = false,
hasClipboardButton,
infoPopoverContent,
clipboardButtonAlwaysVisible = false,
leadingContent,
className,
}: EntityNameProps) {
const [infoIconHovered, setInfoIconHovered] = React.useState(false);
const renderLink = () => {
if (path) {
if (externalLink) {
return (