Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@snack-uikit/toggles

Package Overview
Dependencies
Maintainers
3
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@snack-uikit/toggles

Компоненты, реализующие переключатели.

  • 0.10.0
  • Source
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

Checkbox, Radio, Switch и Favorite

Компоненты, реализующие переключатели.

Installation

npm i @snack-uikit/toggles

Changelog

хук useToggleGroup

Хук для элементов внутри группы переключателей.

Аргументы

value: string

Уникальное значение для элемента в группе

  function ToggleCard(props: ToggleCardProps) {
    const { isChecked, handleClick, multipleSelection } = useToggleGroup(props.id);

    return (
      <Card {...props} checked={isChecked} onClick={handleClick} multipleSelection={multipleSelection}/>
    );
  }

Примеры:

ToggleGroup

  const [value, setValue] = useState<string | undefined>(undefined);

  function ToggleCard(props: ToggleCardProps) {
    const { isChecked, handleClick, multipleSelection } = useToggleGroup(id);

    return (
      <Card {...props} checked={isChecked} onClick={handleClick} multipleSelection={multipleSelection}/>
    );
  }

  // ITEMS -some array with ToggleCardProps
  
  // ...

  return (
    <ToggleGroup selectionMode='single' value={value} onChange={setValue}>
      {ITEMS.map(props => (
        <ToggleCard key={props.id} {...props} />
      ))}
    </ToggleGroup>
  );

// ...

return (
  <>
    {items.map(({ checked, setChecked, data }) =>
      <CustomRadioButton
        // повторяет нативное поведение радиогруппы: по клику можно выбрать, но нельзя снять выбор
        onClick={() => setChecked(true)}
        checked={checked}
        data={data}
      />
    )}
  </>
);

Checkbox

Props

nametypedefault valuedescription
idstring-HTML-аттрибут id
namestring-HTML-аттрибут name
valuestring-HTML-аттрибут value
tabIndexnumber-HTML-аттрибут tab-index
autofocusboolean-HTML-аттрибут autofocus
checkedboolean-HTML-аттрибут checked
defaultCheckedboolean-HTML-аттрибут checked по-умолчанию
disabledboolean-HTML-аттрибут disabled
onChange(checked: boolean) => void-Колбек смены значения
onClickMouseEventHandler<HTMLInputElement>-Колбек клика
onBlurFocusEventHandler<HTMLInputElement>-Колбек потери фокуса
onFocusFocusEventHandler<HTMLInputElement>-Колбек приобретения фокуса
classNamestring-CSS-класс
sizeenum Size: "s", "m"mРазмер
inputRefRefObject<HTMLInputElement>-
indeterminateboolean-Состояние частичного выбора
indeterminateDefaultboolean-Состояние частичного выбора по-умолчанию

Switch

Props

nametypedefault valuedescription
idstring-HTML-аттрибут id
namestring-HTML-аттрибут name
valuestring-HTML-аттрибут value
tabIndexnumber-HTML-аттрибут tab-index
autofocusboolean-HTML-аттрибут autofocus
checkedboolean-HTML-аттрибут checked
defaultCheckedboolean-HTML-аттрибут checked по-умолчанию
disabledboolean-HTML-аттрибут disabled
onChange(checked: boolean) => void-Колбек смены значения
onClickMouseEventHandler<HTMLInputElement>-Колбек клика
onBlurFocusEventHandler<HTMLInputElement>-Колбек потери фокуса
onFocusFocusEventHandler<HTMLInputElement>-Колбек приобретения фокуса
classNamestring-CSS-класс
sizeenum Size: "s", "m"mРазмер
inputRefRefObject<HTMLInputElement>-
showIconboolean-Показывать ли иконку в переключателе
loadingboolean-

Radio

Props

nametypedefault valuedescription
idstring-HTML-аттрибут id
namestring-HTML-аттрибут name
valuestring-HTML-аттрибут value
tabIndexnumber-HTML-аттрибут tab-index
autofocusboolean-HTML-аттрибут autofocus
checkedboolean-HTML-аттрибут checked
defaultCheckedboolean-HTML-аттрибут checked по-умолчанию
disabledboolean-HTML-аттрибут disabled
onChange(checked: boolean) => void-Колбек смены значения
onClickMouseEventHandler<HTMLInputElement>-Колбек клика
onBlurFocusEventHandler<HTMLInputElement>-Колбек потери фокуса
onFocusFocusEventHandler<HTMLInputElement>-Колбек приобретения фокуса
classNamestring-CSS-класс
sizeenum Size: "s", "m"-Размер
inputRefRefObject<HTMLInputElement>-

Favorite

Props

nametypedefault valuedescription
idstring-HTML-аттрибут id
namestring-HTML-аттрибут name
valuestring-HTML-аттрибут value
tabIndexnumber-HTML-аттрибут tab-index
autofocusboolean-HTML-аттрибут autofocus
checkedboolean-HTML-аттрибут checked
defaultCheckedboolean-HTML-аттрибут checked по-умолчанию
disabledboolean-HTML-аттрибут disabled
onChange(checked: boolean) => void-Колбек смены значения
onClickMouseEventHandler<HTMLInputElement>-Колбек клика
onBlurFocusEventHandler<HTMLInputElement>-Колбек потери фокуса
onFocusFocusEventHandler<HTMLInputElement>-Колбек приобретения фокуса
classNamestring-CSS-класс
sizeenum Size: "s", "m"mРазмер
inputRefRefObject<HTMLInputElement>-
iconenum FavoriteIcon: "star", "heart"heartИконка

ToggleGroup

Props

nametypedefault valuedescription
defaultValuestring | string[]-Начальное состояние
valuestring | string[]-Controlled состояние
onChange((value: string) => void) | ((value: string[]) => void)-Controlled обработчик измения состояния
selectionMode"single" | "multiple"singleРежим выбора

useToggleGroup

Props

nametypedefault valuedescription
value*string-

FAQs

Package last updated on 11 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc