Skip to content

Release 2.1.0: context-menu actions, grow-from-item peek, theming, Expo SDK 58 - #3

Merged
Hashtagsmile merged 6 commits into
mainfrom
release/2.1.0
Nov 4, 2026
Merged

Hashtagsmile merged 6 commits into
mainfrom
release/2.1.0

Conversation

@Hashtagsmile

Copy link
Copy Markdown
Owner

What's new

  • Context-menu actions. actions: [{ title, onPress, icon?, destructive?, disabled? }] renders a menu under the popover, or at the bottom of the sheet, on iOS and Android.
  • Grow from the item. The popover morphs out of the pressed item, like the native iOS peek. QuickPreviewPressable measures the item automatically (animateFromItem, default on).
  • Theming / dark mode. colorScheme: 'light' | 'dark' | 'system', containerStyle, backdropColor, renderBackdrop (e.g. a blur), plus PreviewProvider defaultOptions.
  • No more react-native-portalize. It's been unmaintained since 2022 and is replaced by a small in-house overlay. Installs need three peers instead of four.
  • Expo SDK 58 / RN 0.88 / Reanimated 4.7 / Gesture Handler 3. The dev stack and example app are upgraded; Jest uses @react-native/jest-preset.

All additive, so this is a minor release. The default look is unchanged, and apps that still have portalize installed keep working.

Checks

  • type-check, lint, build, npm pack --dry-run
  • 31 tests (10 new: actions, theming, custom backdrop, morph fallback, defaultOptions, overlay)
  • The example app type-checks and bundles for Android with Metro on SDK 58

CI drops Node 20 (EOL; RN 0.88 tooling needs >= 22.13).

Merging bumps the version on main, which triggers the release workflow and publishes 2.1.0 to npm.

- Dev stack and example app on Expo SDK 58: React Native 0.88, React 19.3,
  Reanimated 4.7, worklets 0.13, Gesture Handler 3.3, safe-area 5.11.
- Jest uses @react-native/jest-preset (RN 0.88 no longer ships a root preset).
- Declare __DEV__ locally; RN 0.88's bundled types stopped declaring it.
- Replace react-native-portalize (unmaintained since 2022) with a small
  in-house overlay rendered by PreviewProvider. The headless
  QuickPreviewComponent portals into it. One less peer dependency for users.
- Tighten the react-native peer range to >=0.72 (what Reanimated 3+ and
  Gesture Handler 2+ actually require).
- CI drops Node 20 (EOL; RN 0.88 tooling needs >=22.13).
- Example: add @expo/vector-icons (no longer transitive in SDK 58) and fix the
  tab icon color type.
- actions: [{ title, onPress, icon?, destructive?, disabled? }] renders a menu
  under the popover or at the bottom of the sheet, on iOS and Android.
  Pressing an action closes the preview, then runs it.
- origin: the popover grows out of the pressed item's window rect.
  QuickPreviewPressable measures the item automatically (animateFromItem,
  default true) and takes an `actions` shorthand prop.
- colorScheme ('light' | 'dark' | 'system'), containerStyle, backdropColor
  and renderBackdrop (e.g. a blur). Default stays light.
- PreviewProvider defaultOptions for app-wide defaults; present() options
  override them.
- Export QuickPreviewAction, QuickPreviewColorScheme, QuickPreviewOrigin.
- Tests for actions, theming, custom backdrop, the morph fallback,
  defaultOptions and the in-house overlay.
Open post, Share, Copy link and a destructive Report action, so the flagship demo shows the peek + menu on both platforms.
…docs

- New pitch: "the iOS long-press peek, on Android too".
- "How it compares" table vs Expo Router Link.Preview, zeego /
  ios-context-menu and @gorhom/bottom-sheet.
- Sections for context-menu actions, grow-from-item and theming; API table
  and exports updated.
- Install is three peers now (portalize removed); requirements, compatibility
  and limitations updated for SDK 58 / Gesture Handler 3.
- npm description and keywords lead with iOS + Android, context menu.
Bump the package to 2.1.0 and add the changelog entry. Everything is additive; removing the portalize peer dependency doesn't break anything for apps that still have it installed.
Three exact thirds of the window width can sum past the row after layout rounding, wrapping the third tile onto the next line (seen on a 1080px Android screen). Same fix for the two-column shop grid.
@Hashtagsmile
Hashtagsmile merged commit 0b42690 into main Nov 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant