import React, { FunctionComponent, ReactNode, HTMLAttributes, MouseEventHandler } from 'react'; import getClassName from '../../helpers/getClassName'; import classNames from '../../lib/classNames'; import usePlatform from '../../hooks/usePlatform'; import Icon24Chevron from '@vkontakte/icons/dist/24/chevron'; import Icon24DismissSubstract from '@vkontakte/icons/dist/24/dismiss_substract'; import Icon24DismissDark from '@vkontakte/icons/dist/24/dismiss_dark'; import Tappable from '../Tappable/Tappable'; export interface BannerProps extends HTMLAttributes { /** * Тип баннера. */ mode?: 'tint' | 'image'; size?: 's' | 'm'; /** * Тип действия в правой части баннера. * * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`. * - `expand` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти. */ asideMode?: 'dismiss' | 'expand'; /** * Срабатывает при клике на иконку крестика при `asideMode="dismiss"`. */ onDismiss?: MouseEventHandler; /** * Содержимое, отображаемое в левой части баннера. */ before?: ReactNode; /** * Заголовок.
* При использовании этого свойства рекомендуется не указывать `text`. */ header?: ReactNode; /** * Подзаголовок.
* При использовании этого свойства рекомендуется не указывать `text`. */ subheader?: ReactNode; /** * Текст баннера.
* Это свойство следует использовать без указания `header` и `subheader`. */ text?: ReactNode; /** * При использовании `mode="image"`. * * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным. * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым. */ imageTheme?: 'light' | 'dark'; /** * При использовании `mode="image"`. * * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера. */ background?: ReactNode; /** * Кнопки, отображаемые в баннере. * * - В режиме `tint` или в `image` со светлым фоном рекомендуется использовать только `