chore: replace react-native-file-viewer with @magrinj/expo-quick-look#7486
chore: replace react-native-file-viewer with @magrinj/expo-quick-look#7486diegolmello wants to merge 1 commit into
Conversation
react-native-file-viewer is a dead (2022) legacy native module with no
codegenConfig, running only via the New-Arch interop layer. Replace it
with @magrinj/expo-quick-look (Expo modules API, new + old arch): iOS
QLPreviewController + Android ACTION_VIEW chooser, one API both platforms.
Single call site (fileDownloadAndPreview) swapped to previewFile({ uri }).
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (3)
📜 Recent review details⏰ Context from checks skipped due to timeout. (2)
🧰 Additional context used📓 Path-based instructions (3)**/*.{js,ts,jsx,tsx}📄 CodeRabbit inference engine (AGENTS.md)
Files:
**/*.{ts,tsx}📄 CodeRabbit inference engine (AGENTS.md)
Files:
**/*.{ts,tsx,js,jsx}📄 CodeRabbit inference engine (CLAUDE.md)
Files:
🧠 Learnings (4)📚 Learning: 2026-04-30T17:07:51.020ZApplied to files:
📚 Learning: 2026-03-30T15:49:26.708ZApplied to files:
📚 Learning: 2026-02-05T13:55:00.974ZApplied to files:
📚 Learning: 2026-05-07T17:47:14.516ZApplied to files:
🔇 Additional comments (3)
WalkthroughThe file download helper now uses ChangesFile preview provider
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
package.jsonParsing error: Missing semicolon. (2:7) Warning Review ran into problems🔥 ProblemsErrors were encountered while retrieving linked issues. Errors (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Proposed changes
react-native-file-vieweris a dead (last published 2022) legacy native module with nocodegenConfig. On React Native's New Architecture it runs only via the default-on interop layer, so it is first in line to break on a future RN bump and has no upstream TurboModule/Fabric path.This replaces it with
@magrinj/expo-quick-look(Expo modules API, new + old arch): iOSQLPreviewController, AndroidACTION_VIEWintent chooser — a 1:1 match for the previous behavior with a single cross-platform API.The module has exactly one call site:
fileDownloadAndPreviewinapp/lib/methods/helpers/fileDownload.ts(reached from a message Reply's generictype === 'file'attachments).FileViewer.open(file, { showOpenWithDialog, showAppsSuggestions })becomesExpoQuickLook.previewFile({ uri: file }). The jest mock is updated accordingly.Issue(s)
Part of the RN 0.83 / Expo 55 upgrade — getting risky modules off the New-Arch interop layer. NATIVE-1234
How to test or reproduce
Screenshots
Types of changes
Checklist
Further comments
Bumping
react-native-file-viewerwas not an option — its latest release (2.1.5) is also legacy-only, with no new-arch path.@magrinj/expo-quick-lookis niche; pinned to an exact version. Fallback if it proves unfit:expo-intent-launcher(Android) + a thin iOS QuickLook shim (per-platform split).Summary by CodeRabbit