Utils
TODO
Installation
npm i @snack-uikit/utils
Changelog
useDebounce
React hook
Хук задерживает выполнение функции или обновление значения до тех пор,
пока не пройдет определенный период времени без новых вызовов.
useEventHandler
React hook
Хук для создания обработчика событий с неизменной функцией.
useLayoutEffect
React hook
Хук используется вместо стандартного useLayoutEffect-а,
нужен для корректной работы SSR
useSwipeable
Хук для работы с событиями свайпа
Props
name | type | default value | description |
---|
enabled | boolean | true | Включен ли свайп |
availableDirections | SwipeDirections[] | - | Направления, в которых будет работать свайп. Укажите это свойство, чтобы предотвратить конфликты и заблокировать свайп в родительских элементах по этим направлениям. |
onSwipedDown | SwipeCallback | - | Called after a DOWN swipe |
onSwipedLeft | SwipeCallback | - | Called after a LEFT swipe |
onSwipedRight | SwipeCallback | - | Called after a RIGHT swipe |
onSwipedUp | SwipeCallback | - | Called after a UP swipe |
onSwipeStart | SwipeCallback | - | Called at start of a tracked swipe. |
onSwiped | SwipeCallback | - | Called after any swipe. |
onSwiping | SwipeCallback | - | Called for each move event during a tracked swipe. |
onTap | TapCallback | - | Called after a tap. A touch under the min distance, delta . |
onTouchStartOrOnMouseDown | TapCallback | - | Called for touchstart and mousedown . |
onTouchEndOrOnMouseUp | TapCallback | - | Called for touchend and mouseup . |
delta | ConfigurationOptionDelta | - | Min distance(px) before a swipe starts. Default: 10 |
preventScrollOnSwipe | boolean | - | Prevents scroll during swipe in most cases. Default: false |
rotationAngle | number | - | Set a rotation angle. Default: 0 |
trackMouse | boolean | - | Track mouse input. Default: false |
trackTouch | boolean | - | Track touch input. Default: true |
swipeDuration | number | - | Allowable duration of a swipe (ms). Default: Infinity |
touchEventOptions | { passive: boolean; } | - | Options for touch event listeners |
useThemeConfig
Хук для работы с темами
Props
name | type | default value | description |
---|
themeMap* | Record<T, string> | - | Объект с указанием соответсвия темы и css-класса |
useValueControl
Хук для работы с состоянием.
Нужен для поддержки controlled/uncontrolled поведения, в зависимости от того были ли переданы входные аргументы
Props
name | type | default value | description |
---|
value | TValue | - | Значение состояния |
defaultValue | TValue | - | Значение по умолчанию |
onChange | (value: TValue) => void | - | Колбек, вызываемый на смену состояния |
ThemeProvider
Провайдер, предназначенный для работы с темами
Props
name | type | default value | description |
---|
defaultTheme* | string | - | Значение темы по умолчанию |
themeMap* | Record<string, string> | - | Объект с указанием соответсвия темы и css-класса |
children* | ReactNode | - | Дети, которые будут обёрнуты в провайдер |
excludeSupportProps
helper
Функция для исключения вспомогательных свойств (data-test-id & aria-*)
helper
Функция для отбора свойства data-test-id
helper
Функция для отбора вспомогательных свойств (data-test-id & aria-*)
isBrowser
helper
Функция проверки текущей среды выполнения кода,
нужна для корректной работы SSR