Skip to content

Releases: enzomanuelmangano/pressto

Release 0.7.0

12 Jun 08:21

Choose a tag to compare

pressto 0.7.0

Per-component control over global handlers, analytics-friendly metadata, a standard disabled prop, and e2e-ready accessibility identifiers. Fully backward compatible (semver-minor) — existing code runs unchanged.

npm i pressto@0.7.0

New

disabled prop — the standard React Native convention. enabled still works but is now deprecated. (closes #22)

<PressableScale disabled onPress={onPress} />

Per-component metadata in handlersmetadata now reaches onPress / onPressIn / onPressOut, including the PressablesConfig globalHandlers. A global handler can finally tell which pressable fired (analytics name, flags, etc.) without repeating logic per component. A component's metadata overrides the config-level one. (closes #26)

<PressablesConfig
  globalHandlers={{ onPress: ({ metadata }) => track('tap', metadata?.name) }}
>
  <PressableScale metadata={{ name: 'checkout' }} />
  <PressableScale metadata={{ name: 'cancel' }} />
</PressablesConfig>

skipGlobalHandlers prop — opt a single pressable out of the global handlers while its own onPress still fires. No more nested PressablesConfig hack to mute, e.g., global haptics on one button. (closes #30)

<PressableScale skipGlobalHandlers onPress={onPress} />

testID → native accessibilityIdentifier — RNGH's BaseButton accepts testID but doesn't propagate it to the native view, so e2e runners (Maestro, XCUITest, Detox) couldn't locate pressto buttons. pressto now mirrors React Native's convention: testID becomes the native accessibilityIdentifier, and pressables are accessibility elements by default. Both are overridable via accessibilityIdentifier and accessible. (#33)

Internal

  • Unit test suite added with @testing-library/react-native.
  • Releases now publish from CI via npm OIDC Trusted Publishing — no NPM_TOKEN, provenance-signed, behind a manual-approval gate. (#35)

Verified

The new behavior was validated on real devices (iOS + Android, SDK 56): metadata reaching global handlers, skipGlobalHandlers suppression, and the themed metadata path (no regression).

Full Changelog: v0.6.1...v0.7.0

Release 0.7.0-beta.1

08 Jun 09:29

Choose a tag to compare

Release 0.7.0-beta.1 Pre-release
Pre-release

0.7.0-beta.1 (2026-06-08)

Release 0.7.0-beta.0

08 Jun 09:25

Choose a tag to compare

Release 0.7.0-beta.0 Pre-release
Pre-release

0.7.0-beta.0 (2026-06-08)

Features

  • add disabled prop, deprecate enabled (#31) (937c3d0), closes #22
  • per-component metadata in handlers + skipGlobalHandlers (#26, #30) (#34) (d734ae3), closes #20
  • propagate testID to accessibilityIdentifier for e2e discovery (#33) (c97bcc1)

Release 0.6.1

12 Feb 15:41

Choose a tag to compare

0.6.1 (2026-02-12)

Features

  • Add defaultProps to PressablesConfig (#29) - thanks @timonla for the suggestion in #28

This allows setting default props for all pressables globally, useful for platform-specific behavior like disabling the Android ripple effect:

<PressablesConfig defaultProps={{ rippleColor: 'transparent' }}>
  {/* All pressables will have ripple disabled */}
</PressablesConfig>

Release 0.6.0

18 Oct 10:36

Choose a tag to compare

0.6.0 (2025-10-18)

Features

Breaking changes v0.5.1 → v0.6.0

PressablesConfig prop renamed: configanimationConfig

<PressablesConfig
- config={{ damping: 30, stiffness: 200 }}
+ animationConfig={{ damping: 30, stiffness: 200 }}
>

Release 0.5.1

14 Oct 19:24

Choose a tag to compare

0.5.1 (2025-10-14)

Features

  • add PressableWithoutFeedback component and update exports (#13) (aabcd82)

Release 0.5.0

14 Oct 19:31

Choose a tag to compare

0.5.0 (2025-10-14)

Features

  • add advanced interaction states and theme metadata support to animated pressables (dc6212b)
  • add initialToggled prop to PressableToggle for default toggled state (b4180ea)
  • add theme metadata example and new navigation button (9c657f6)
  • enhance Pressable components with detailed interaction options and logging (37ac0b0)
  • enhance PressableToggle with isPressed, isFocused states and update example text (3dd8ef7)
  • isFocused -> isSelected (b5e0bb7)
  • support isToggled & lastItemTouched (9ce4b24)
  • support toggled (9583cce)

Upgrading from 0.3.x to 0.5.x

Breaking Change: The progress parameter is now a plain number instead of SharedValue<number>.

const MyPressable = createAnimatedPressable((progress) => {
  'worklet';
  return {
-   opacity: progress.get() * 0.5,
+   opacity: progress * 0.5,
-   scale: interpolate(progress.get(), [0, 1], [1, 0.95]),
+   scale: interpolate(progress, [0, 1], [1, 0.95]),
  };
});

What to do: Remove all .get() / .value calls on the progress parameter.

Release v0.3.1

13 Oct 17:34

Choose a tag to compare

Full Changelog: v0.3.0...v0.3.1

  • ✅ broken a11y types on v0.3.0 #11 - fix

Release 0.3.0

11 Oct 14:19

Choose a tag to compare

0.3.0 (2025-10-11)

Features

  • Uses BaseButton from gesture-handler directly
  • Automatic tap conflict detection (no custom scroll logic needed)
  • Cleaner, simpler implementation (~150 lines removed from base.tsx)
  • Better integration with gesture-handler's FlatList

Release 0.2.1

30 Dec 17:22

Choose a tag to compare

0.2.1 (2024-12-30)

Bug Fixes

  • warning reading value during render (#8) (4ac05ea)