import { ListData } from '@megafon/ui-core';
<ListData title="Заголовок" subTitle="Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию" /> <ListData title="Заголовок" subTitle="Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию" value="600 ₽" /> <ListData title="Заголовок" subTitle="Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию" value="600 ₽" subValue="Описание" /> <ListData icon={<MegafonTvIcon />} title="Заголовок" value="600 ₽" subValue="Описание" /> <ListData icon={<MegafonTvIcon />} title={{ text: 'Title link', href: '#' }} subTitle="Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию" value="600 ₽" subValue="Описание" isIconColored /> <ListData icon={<MegafonTvIcon />} title={{ text: 'Title link', href: '#' }} subTitle="Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию" value="600 ₽" disabled />
<ListData icon={<MegafonTvIcon />} title="Длинный заголовок максимум в две строки, далее будет троеточие" subTitle="Длинный подзаголовок только в одну строку, далее троеточие" value="Может быть в две строки, далее будет троеточие" subValue="110px потом троеточие" /> <ListData icon={<MegafonTvIcon />} title="Заголовок" subTitle="Длинный подзаголовок только в одну строку, далее троеточие" value="Может быть в две строки, далее будет троеточие" subValue="110px потом троеточие" />
<ListData icon={<MegafonTvIcon />} title={{ text: 'Title link', href: '#' }} subTitle="Переход по ссылке при клике на заголовок" value="Text" subValue="Value" /> <ListData icon={<MegafonTvIcon />} title="Control" subTitle="Обработчик клика по иконке дополнительного действия" actionType="control" onAction={handleClick} /> <ListData icon={<MegafonTvIcon />} title="Delete" subTitle="Обработчик клика по иконке дополнительного действия" actionType="delete" onAction={handleClick} /> <ListData icon={<MegafonTvIcon />} title="Delete" subTitle="Disabled" actionType="delete" onAction={handleClick} disabled />
import { Avatar, ListData } from '@megafon/ui-core';
<ListData avatar={<Avatar src={ImageSrc.src} alt="аватар" />} title="Avatar" subTitle="Avatar имеет приоритет над icon" value="Text" subValue="Value" /> <ListData avatar={<Avatar src={ImageSrc.src} alt="аватар" />} title="Avatar" subTitle="Avatar имеет приоритет над icon" value="Text" subValue="Value" disabled />
import { Button, ListData } from '@megafon/ui-core';
<ListData icon={<MegafonTvIcon />} title="Button" subTitle="Обработчик клика на кнопке"> <Button sizeAll="small" sizeMobile="extra-small" onClick={handleClick}> Подключить </Button> </ListData> <ListData icon={<MegafonTvIcon />} title="Button" subTitle="Disabled" disabled> <Button sizeAll="small" sizeMobile="extra-small" disabled> Отключено </Button> </ListData>
import { ListData, Selector } from '@megafon/ui-core';
Код Wrapperconst Wrapper = ({ children }: IProps) => {const [checked, setChecked] = React.useState<boolean>(true);const handleChange = () => {setChecked(!checked);};return <div style={blockStyle}>{children({ checked, onChange: handleChange })}</div>;};
<Wrapper> {({ checked, onChange }) => ( <> <ListData icon={<MegafonTvIcon />} title="Selector" subTitle="Обработчик клика на родительском компоненте" onClick={onChange} > <Selector value="value" checked={checked} /> </ListData> <ListData icon={<MegafonTvIcon />} title="Selector" subTitle="Disabled" disabled> <Selector value="value" checked disabled /> </ListData> </> )} </Wrapper>
Код SelectorWrapperconst SelectorWrapper = ({ children }) => {const [selectedOption, setSelectedOption] = React.useState<string>('1');const handleChange = (value: string): void => {setSelectedOption(value);};return <div style={blockStyle}>{children({ onChange: handleChange, selectedOption })}</div>;};
<SelectorWrapper> {({ onChange, selectedOption }) => ( <> <ListData icon={<MegafonTvIcon />} title={{ text: 'Title link', href: '#' }} subTitle="Обработчик клика на дочернем компоненте" > <Selector value="1" checked={selectedOption === '1'} onChange={onChange} /> </ListData> <ListData icon={<MegafonTvIcon />} title={{ text: 'Title link', href: '#' }} subTitle="Обработчик клика на дочернем компоненте" > <Selector value="2" checked={selectedOption === '2'} onChange={onChange} /> </ListData> </> )} </SelectorWrapper>
import { ListDataGroup } from '@megafon/ui-core';
<ListDataGroup activatorNode="control" gap="small" items={['1', '2', '3', '4', '5'].map(item => ({ id: item, icon: <MegafonTvIcon />, title: 'Заголовок ' + item, }))} /> <ListDataGroup activatorNode="cell" gap="large" showDivider items={['1', '2', '3', '4', '5'].map(item => ({ id: item, avatar: <Avatar src={ImageSrc.src} alt="аватар" />, title: 'Заголовок ' + item, subTitle: 'Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию', }))} />
Prop name | Type | Default | Description |
---|---|---|---|
title* | string | TitlePropsType | Заголовок | |
subTitle | string | Подзаголовок | |
value | string | Значение | |
valueColor | ValueColorsType | Цвет | |
subValue | string | Дополнительное значение | |
icon | Element | Иконка | |
isIconColored | boolean | false | Фоновая заливка у иконки |
avatar | Element | Аватар | |
disabled | boolean | false | Отключение компонента |
actionType | ActionsType | Элемент дополнительного действия | |
onAction | (e: SyntheticEvent<EventTarget, Event>) => void | Обработчик дополнительного действия | |
onClick | (e: SyntheticEvent<EventTarget, Event>) => void | Обработчик клика | |
className | string | Дополнительный класс корневого элемента | |
classes | { root?: string; title?: string; subtitle?: string; } | {} | Дополнительные классы для внутренних элементов |
dataAttrs | { root?: Record<string, string>; actionIcon?: Record<string, string>; } | Дополнительные data атрибуты к внутренним элементам | |
children | ReactNode | Дочерние элементы: Button, Selector |
type TitlePropsType = {/** Текст заголовка */text: string;/** Ссылка */href: string;/** Атрибут ссылки target */target?: '_self' | '_blank' | '_parent' | '_top';/** Атрибут ссылки rel */rel?: string;};
Prop name | Type | Default | Description |
---|---|---|---|
items* | ListItemPropsType[] | Массив элементов | |
activatorNode | ActivatorNodesType | control | Активатор события перетаскивания |
gap | GapSizesType | none | Отступ между элементами |
showDivider | boolean | false | Показать разделитель |
onDragStart | (event?: DragStartEvent) => void | Обработчик начала процесса перетаскивания | |
onDragEnd | (items: ListItemPropsType[], event?: DragEndEvent) => void | Обработчик окончания процесса перетаскивания | |
disabled | boolean | false | Отключить перетаскивание |
dragOverlayProps | DragOverlayPropsType | Параметры DragOverlay элемента | |
className | string | Дополнительный класс корневого элемента | |
classes | { root?: string; cell?: string; control?: string; } | {} | Дополнительные классы для внутренних элементов |
dataAttrs | { root?: Record<string, string>; cell?: Record<string, string>; control?: Record<string, string>; } | Дополнительные data атрибуты к внутренним элементам |
type ListItemPropsType = ListDataProps & { id: string | number }
type DragOverlayPropsType = {className?: string;zIndex?: number;};