Перейти к содержимому

PullToRefresh

Компонент для обновления контента жестом “потянуть вниз”. Работает на сенсорных устройствах и поддерживает управление состоянием загрузки.

Функция обновления данных (прим.: функция должна быть мемоизированным обработчиком)

  • Устанавливайте isFetching={true} при начале загрузки.
  • Устанавливайте isFetching={false} после завершения загрузки.

Жест «потянуть вниз» недоступен пользователям ассистивных технологий: в VoiceOver смахивание тремя пальцами вниз не вызывает PullToRefresh.

Вместо жеста компонент отрисовывает скрытую кнопку «Обновить». Она в таб-фокусе, срабатывает с клавиатуры (Enter/Space) и объявляется скринридером. Кнопка вызывает тот же onRefresh и блокируется на время обновления. Состояние загрузки озвучивается через aria-busy и aria-live="polite".

Чтобы зрячий пользователь, навигирующийся с клавиатуры, видел, где оказался, кнопка (на базе Button) раскрывается во всплывающую при фокусе и скрывается при потере фокуса.

Тексты для скринридера переопределяются свойствами:

<PullToRefresh
  onRefresh={onRefresh}
  isFetching={fetching}
  accessibilityLabel="Лента пользователей"
  refreshLabel="Обновить ленту"
>
  {content}
</PullToRefresh>
  • accessibilityLabel — подпись области (по умолчанию «Обновление контента»).
  • refreshLabel — текст кнопки (по умолчанию «Обновить»).
СвойствоОписание
accessibilityLabelstring

Текст, объявляемый скринридером для области обновления.

По умолчанию: Обновление контента
ComponentElementType<any, keyof IntrinsicElements>
По умолчанию: -
documentDocument
По умолчанию: -
getRootRefRef<HTMLElement>
По умолчанию: -
isFetchingboolean

Определяет, выполняется ли обновление. Для скрытия спиннера после получения контента необходимо передать false.

По умолчанию: -
noSlideClickboolean

Блокировать click-события после распознавания свайпа.

По умолчанию: -
onEndCustomTouchEventHandler

Общий обработчик завершения взаимодействия.

По умолчанию: -
onEndXCustomTouchEventHandler

Обработчик завершения горизонтального свайпа.

По умолчанию: -
onEndYCustomTouchEventHandler

Обработчик завершения вертикального свайпа.

По умолчанию: -
onEnterHoverHandler

Обработчик входа курсора в область.

По умолчанию: -
onLeaveHoverHandler

Обработчик выхода курсора из области.

По умолчанию: -
onMoveCustomTouchEventHandler

Общий обработчик перемещения.

По умолчанию: -
onMoveXCustomTouchEventHandler

Обработчик горизонтального перемещения.

По умолчанию: -
onMoveYCustomTouchEventHandler

Обработчик вертикального перемещения.

По умолчанию: -
onRefreshAnyFunction

Будет вызвана для обновления контента (прим.: функция должна быть мемоизированным обработчиком).

По умолчанию: -
onStartCustomTouchEventHandler

Общий обработчик начала взаимодействия.

По умолчанию: -
onStartXCustomTouchEventHandler

Обработчик начала горизонтального перемещения.

По умолчанию: -
onStartYCustomTouchEventHandler

Обработчик начала вертикального перемещения.

По умолчанию: -
refreshLabelstring

Текст скрытой кнопки, запускающей обновление для пользователей ассистивных технологий.

По умолчанию: Обновить
scrollScrollContextInterface
По умолчанию: -
slideThresholdnumber

Порог расстояния в пикселях для активации свайпа.

По умолчанию: 5
slotProps{ controls?: Pick<CSSProperties, "zIndex">; } | undefined

Свойства, которые можно прокинуть внутрь компонента:

  • controls: свойства контейнера спиннера.
По умолчанию: -
stopPropagationboolean

Останавливать всплытие событий.

По умолчанию: -
useCaptureboolean

Использовать фазу capture для событий.

По умолчанию: -
usePointerHoverboolean

Использовать pointer-events для hover-состояний. Работает на отключенных элементах (disabled inputs).

По умолчанию: -
windowWindow
По умолчанию: -