Enable Expo autolinking and wire native image crop (follow-up to #406)
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
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
expoexclusion 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
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from spudly/eciperay
-
blocked needs_human priority-p2
Difficulty 2/5 Half a day Newbie friendliness 68/100
spudly/eciperay#31 · 1 comment ·
Maintainers usually reply within 1 day
-
Android release build fails applying expo-autolinking plugin (expo-constants libraryVariants) — regression from #464Possibly taken @spudly claimed this today. Openblocker bug priority-p1 scale-md
Difficulty 4/5 3-5 days Newbie friendliness 25/100
spudly/eciperay#466 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement priority-p2
Difficulty 5/5 Over a week Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
bug priority-p2
Difficulty 3/5 1-2 days Newbie friendliness 66/100
spudly/eciperay#461 · 3 comments ·
Maintainers usually reply within 1 day
-
enhancement priority-p2
Difficulty 5/5 Over a week Newbie friendliness 35/100
spudly/eciperay#460 · 4 comments ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
danielw-sudo/agentuto#63 ·
Maintainers usually reply within 1 day
-
idea-scout idea:341
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
jeanibarz/agent-notebook#341 ·
Maintainers usually reply within 1 day
-
documentation good first issue roadmap
Difficulty 1/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
type:bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
nightgauge/nightgauge#3077 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
LibreChat-AI/LibreChat#17915 ·
Maintainers usually reply within 1 day