Contributions are always welcome, no matter how large or small.
Before contributing, read CODE_OF_CONDUCT.md.
This project is a monorepo managed with Yarn workspaces:
- Library package in repository root
- Example app in
example/
Use Yarn 3.6.1 (declared in package.json) via Corepack.
- Node.js installed
- Corepack enabled (
corepack enable) - Android Studio / Xcode if you run native targets
Run from repository root:
corepack yarn installRun from repository root.
- Start Metro in terminal 1:
corepack yarn example:metro- Run app in terminal 2:
# Android
corepack yarn example:android
# iOS
corepack yarn example:ios
# Web
corepack yarn example:webOptional Android device picker:
corepack yarn example:android -- --devicesh: expo: command not found: runcorepack yarn installfirst, then run commands from repository root.No version is set for command yarn: usecorepack yarn ....- Native code change not reflected: rebuild app with
corepack yarn example:androidorcorepack yarn example:ios.
The example app is linked to the local library workspace:
- JavaScript/TypeScript changes are reflected without rebuilding native app
- Native module changes require rebuilding the app target
The library uses @react-native-documents/picker directly in src/ for both:
- image attachment picker
- document/file attachment picker
MultichannelWidget no longer accepts pickImage / pickDocument props from consumers.
Rules when contributing:
- Keep
@react-native-documents/pickerinpeerDependencieswith a clear compatibility range. - Keep image picker limited to image mime type only.
- Keep document picker limited to non-image document/file mime types.
- Keep behavior consistent with README usage (consumer only passes
onBacktoMultichannelWidget).
Run before opening a PR:
corepack yarn typecheck
corepack yarn lint
corepack yarn testWhen you need to regenerate build output (lib/):
corepack yarn prepareThis project uses release-it for publishing:
corepack yarn releaseWe follow Conventional Commits:
fix: bug fixesfeat: new featuresrefactor: internal refactordocs: documentation changestest: test changeschore: tooling/config changes
- Keep PRs focused and small
- Run typecheck/lint/tests locally
- Add or update tests when possible
- Update docs for behavior/API changes