import { isMobileLayout, useAdaptiveLayout } from '@cloud-ru/ds-adaptive'; import { TruncateString } from '@cloud-ru/ds-truncate-string'; import { SIZE, Typography, VARIANT } from '@cloud-ru/ds-typography'; import { extractSupportProps } from '@cloud-ru/ds-utils'; import styles from './styles.module.scss'; import { HeadlineProps } from './types'; export function Headline({ title, actions, moreActions, slotBeforeTitle, slotAfterTitle, subtitle, truncateTitle, ...rest }: HeadlineProps) { const { layoutType } = useAdaptiveLayout(); const isMobile = isMobileLayout(layoutType); const needsRender = Boolean(title || slotBeforeTitle || slotAfterTitle || subtitle || actions || moreActions); if (!needsRender) return null; return (
{slotBeforeTitle &&
{slotBeforeTitle}
} {truncateTitle ? : title} {slotAfterTitle && !isMobile &&
{slotAfterTitle}
} {moreActions &&
{moreActions}
}
{Boolean(actions) &&
{actions}
}
{/* На mobile статус переносится под заголовок (Figma headlineTitle mobile). */} {slotAfterTitle && isMobile &&
{slotAfterTitle}
} {subtitle &&
{subtitle}
}
); }