ListData

import { ListData } from '@megafon/ui-core';

Базовое использование

<ListData
      title="Заголовок"
      subTitle="Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию"
  />
  <ListData
      title="Заголовок"
      subTitle="Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию"
      value="600&nbsp;"
  />
  <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&nbsp;"
      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
  />

Использование с Avatar

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
  />

Использование с Button

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>

Использование с Selector

import { ListData, Selector } from '@megafon/ui-core';
Код Wrapper
const 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>
Код SelectorWrapper
const 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>

ListDataGroup

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: 'Подзаголовок. Пример, пакет интернета для поездок в СНГ, Европу, а так же Турцию',
      }))}
  />