Enable Expo autolinking and wire native image crop (follow-up to #406)

Closed
#453 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

A pull request for this has already been merged.

  • #464 by @spudly — merged

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
react-native, typescript
Domain
mobile

Research direction

Read the native setup in the iOS Podfile, Android settings.gradle, and react-native.config.cjs, then locate the crop helper that currently uses a lazy try/catch require. The issue calls for Expo autolinking on both platforms and a static import with the fallback removed. Verify with release native builds: the recipe form opens without throwing and native crop produces a cropped image; the issue also requires an implementation plan and Stephen’s approval before coding.

Written by the indexing model from the issue text.

Description

enhancement priority-p2

Summary

Enable Expo autolinking in the native app and wire the real native image crop, replacing the graceful fallback shipped under #406 / PR #446.

Background

#406 (photo crop) found that expo-image-manipulator is not natively registered: the app has no Expo autolinking anywhere (no use_expo_modules! in the Podfile, no Expo plugin in settings.gradle, expo explicitly excluded in react-native.config.cjs, zero Expo pods in Podfile.lock). The module's entry calls requireNativeModule('ExpoImageManipulator') at load, so a static import throws in a native build.

Stephen's decision (2026-11-06, on PR #446): Option 3 — ship #406 with a graceful fallback (lazy try/catch require; native falls back to the uncropped image) and do the autolinking properly here, as its own change.

Scope

  • iOS: add use_expo_modules! to the Podfile (and any Expo config the autolinking setup requires).
  • Android: add the Expo autolinking plugin to settings.gradle.
  • Remove the expo exclusion in react-native.config.cjs.
  • Once autolinking is in: replace the try/catch lazy require in the crop helper with the normal static import and remove the fallback path.
  • Verify with real native builds (release-only CI): the recipe form opens without throwing and native crop produces a cropped image.

Notes

  • Plan gate applies: post an implementation plan and wait for Stephen's approval before implementing.
  • Filed from PR #446's decision thread; #406 stays the parent feature issue.
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
8h 48m
Merged PRs (30d)
209

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from spudly/eciperay

All issues in spudly/eciperay

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.