import React from 'react';
import {ClipboardButton, Flex, Text, Tooltip} from '@gravity-ui/uikit';
import {isNil} from 'lodash';
import {cn} from '../../utils/cn';
import {EMPTY_DATA_PLACEHOLDER} from '../../utils/constants';
import type {DiskDetailItem} from '../../utils/disks/diskInfo/getDiskLocationItems';
import {DiskTypeLabel} from '../DiskStatus/DiskStatus';
import {YDBDefinitionList} from '../YDBDefinitionList/YDBDefinitionList';
import i18n from './i18n';
import './DiskPopup.scss';
const b = cn('ydb-disk-popup');
export function DiskPopup({
children,
combined = false,
className,
}: {
children: React.ReactNode;
combined?: boolean;
className?: string;
}) {
return
{children}
;
}
export function DiskPopupPanel({
children,
footer,
}: {
children: React.ReactNode;
footer?: React.ReactNode;
}) {
return (
{children}
{footer &&
{footer}
}
);
}
export function DiskPopupHeader({
title,
id,
type,
statuses,
}: {
title: string;
id?: string;
type?: string;
statuses: React.ReactNode;
}) {
return (
{title}
•
{id || EMPTY_DATA_PLACEHOLDER}
{id && (
)}
{statuses}
);
}
export function DiskPopupText({
value,
withLeftTrim = false,
}: {
value?: string | number;
withLeftTrim?: boolean;
}) {
const hasValue = !isNil(value) && value !== '';
const text = hasValue ? value : EMPTY_DATA_PLACEHOLDER;
return (
{withLeftTrim ? {text} : text}
);
}
export function DiskPopupLocation({items}: {items: DiskDetailItem[]}) {
if (!items.length) {
return null;
}
const locationItems = items.map((item) => {
if (['fqdn', 'rack', 'datacenter'].includes(item.id)) {
return {...item, content: };
}
if (item.id === 'pdisk-path' && typeof item.copyText === 'string') {
return {
...item,
content: ,
};
}
return item;
});
return (
);
}