Skip to content

Switcher

Компонент выключатель может быть использован в настройках для включения/выключения функций и процессов. Выключатель не требует подтверждения действия кнопкой Применить, в отличие, например от Чекбокса.

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

HTML

html
<ds-switcher
  id="switch"
  text="Основной текст"
  subtext="Дополнительный текст"
></ds-switcher>

<script>
  // Демонстрация получения ввода на элементе
  const switch = document.getElementById('switch');
  if (switch) {
    switch.addEventListener('input', (e) => {
      // Если в атрибут value приходит null - переключатель включен
      console.log('Ввод:', e.target?.getAttribute('value') === null);
    });
  }
</script>

React

js
import { useState, useCallback } from 'react';
import { Input } from '@rir/ds-library';

function Component() {
  const [value, setValue] = useState(false);

  const onInput = useCallback((e: Event) => {
    console.log('Событие input на элементе Switcher!', e);
    // Если в атрибут value приходит null - переключатель включен
    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
    // @ts-expect-error
    setValue(e.target.getAttribute('value') === null);
  }, []);

  return (
    <>
      <Switcher
        text="Основной текст"
        subtext="Дополнительный текст"
        onInput={onInput}
      ></Switcher>
    </>
  );
}

export default Component;

API

Props

NameTypeDescriptionDefault
valueStringАктуальный ввод''
textStringОсновной текст''
subtextStringДополнительный текст''
messageStringТекст сообщения об ошибке''
errorBooleanПоказывается ошибка?false
_errorundefined, String: ['true', 'false']Дублирующий литеральный атбрибутundefined
disabledBooleanНеактивная, "выключенная" кнопка?false
_disabledundefined, String: ['true', 'false']Дублирующий литеральный атбрибутundefined

Events

NameDescription
inputСобытие на изменение ввода

Примеры проектов

React

Angular

Vue