Checkbox

import { Checkbox } from '@megafon/ui-core';
Примеры и код
Свойства и методы
Код CheckboxWrapper
export const CheckboxWrapper: React.FC<ICheckboxWrapperProps> = ({ children }) => {
const [checked, setChecked] = React.useState<boolean>(false);
const handleChange = () => {
setChecked(!checked);
};
return (
<div style={{ maxWidth: '500px' }}>
{children({
checked,
onChange: handleChange,
})}
</div>
);
};

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


  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox
              checked={checked}
              onChange={onChange}
          >
              Согласен
          </Checkbox>
      }
  </CheckboxWrapper>
  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox
              checked={checked}
              onChange={onChange}
              disableBottomMargin
          >
              Даю согласие на получение рекламы от ПАО «МегаФон» и третьих лиц в целях продвижения услуг
          </Checkbox>
      }
  </CheckboxWrapper>

Маленький размер текста


  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox
              checked={checked}
              onChange={onChange}
              fontSize="small"
          >
              Согласен
          </Checkbox>
      }
  </CheckboxWrapper>
  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox
              checked={checked}
              onChange={onChange}
              fontSize="small"
              disableBottomMargin
          >
              Даю согласие на получение рекламы от ПАО «МегаФон» и третьих лиц в целях продвижения услуг
          </Checkbox>
      }
  </CheckboxWrapper>

Без текста


  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox
              checked={checked}
              onChange={onChange}
              disableBottomMargin
          />
      }
  </CheckboxWrapper>

Дополнительный контент справа


  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox
              checked={checked}
              onChange={onChange}
              extraContent={
                  <AttentionIcon style={{ display: 'block', width: '20px', height: '20px', fill: 'var(--systemBlue)'}} />
              }
          >
              Согласен
          </Checkbox>
      }
  </CheckboxWrapper>
  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox
              checked={checked}
              onChange={onChange}
              disableBottomMargin
              extraContent={
                  <AttentionIcon style={{ display: 'block', width: '20px', height: '20px', fill: 'var(--systemBlue)'}} />
              }
          >
              Даю согласие на получение рекламы от ПАО «МегаФон» и третьих лиц в целях продвижения услуг
          </Checkbox>
      }
  </CheckboxWrapper>

Светлая тема на темном фоне


  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox
              checked={checked}
              onChange={onChange}
              color="light"
              disableBottomMargin
          >
              Согласен
          </Checkbox>
      }
  </CheckboxWrapper>

Выключенное состояние


  <CheckboxWrapper>
      {() => <Checkbox disabled disableBottomMargin>Согласен</Checkbox>}
  </CheckboxWrapper>

Выключенное состояние + checked


  <CheckboxWrapper>
      {() => <Checkbox checked disabled disableBottomMargin>Согласен</Checkbox>}
  </CheckboxWrapper>

С ошибкой


  <CheckboxWrapper>
      {({ checked, onChange }) =>
          <Checkbox checked={checked} onChange={onChange} error disableBottomMargin>
              Согласен
          </Checkbox>
      }
  </CheckboxWrapper>

Prop nameTypeDefaultDescription
color"light" | "dark" | undefineddarkЦвет чекбокса
classNamestring | undefinedДополнительный класс корневого элемента
classes{ inner?: string | undefined; icon?: string | undefined; } | undefinedДополнительные классы для внутренних элементов
dataAttrs{ root?: Record<string, string> | undefined; inner?: Record<string, string> | undefined; input?: Record<string, string> | undefined; customInput?: Record<...> | undefined; extraContent?: Record<...> | undefined; } | undefinedДополнительные data атрибуты к внутренним элементам
fontSize"small" | "regular" | undefinedregularРазмер текста
namestring | undefinedИмя компонента в DOM
valuestring | undefinedЗначение чекбокса
checkedboolean | undefinedfalseУправление состоянием вкл/выкл компонента
disabledboolean | undefinedОтключение чекбокса
errorboolean | undefinedОтобразить компонент в состоянии ошибки
extraContentElement | ReactNode | JSX.Element | Element[] | Element[]Дополнительный контент справа
disableBottomMarginboolean | undefinedfalseОтключить нижний отступ
onChange((checked: boolean) => void) | undefinedОбработчик изменения значения