import { memo, useMemo } from 'react';
import { WithSupportProps } from '@snack-uikit/utils';
import { SIZE } from '../../constants';
import { TagRowSimple, TagRowTruncated } from '../../helperComponents';
import { Size, TagRowItem } from '../../types';
import { mapTagRowItem } from './utils';
export type TagRowProps = WithSupportProps<{
/** Массив тэгов */
items: TagRowItem[];
/** Лимит количества рядов тэгов. При достижении лимита тэги скрываются под кнопкой. Отсутствие лимита или значение равное нулю отобразит весь список */
rowLimit?: number;
/** Размер */
size?: Size;
/** Текст кнопки, при наведении на которую отображается список скрытых тэгов */
moreButtonLabel?: string;
/** CSS-класс */
className?: string;
/** Коллбэк на клик по удалению тэга */
onItemRemove?(item: string): void;
}>;
function TagRowInner({ items, rowLimit, size = SIZE.Xs, ...props }: TagRowProps) {
const coloredItems = useMemo(() => items.map(mapTagRowItem), [items]);
if (rowLimit) {
return ;
}
return ;
}
export const TagRow = memo(TagRowInner);