feat: Export usePressability hook as public API #54813
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Exports the
usePressabilityhook and related types (PressabilityConfig,PressabilityEventHandlers) from the publicreact-nativeAPI, enabling library authors to implement Pressable-quality press handling on custom components without deep imports.Motivation
With deep imports being deprecated in 0.80 and removal planned for 0.82 (Discussion #893), libraries using
usePressabilityneed a public alternative.Why not just use
<Pressable>?Pressable wraps content in a View, which:
usePressabilityallows applying press handling directly to existing View/Text components—the same pattern React Native uses internally forTextandTextInput.Use Case
UI libraries like Tamagui use
usePressabilityto provide press styles on styled View/Text primitives:Internal Usage
Already used by React Native's own components:
Pressable.jsText.jsTextInput.jsChangelog
[GENERAL] [ADDED] - Export
usePressabilityhook andPressabilityConfig/PressabilityEventHandlerstypes from the public APITest Plan
import { usePressability } from 'react-native'