Thanks for helping improve react-native-multi-selectbox.
Requires Node 20+ and pnpm 10+.
pnpm installapps/example/ # Expo demo (web + native)
packages/multi-selectbox/ # Publishable library (npm: react-native-multi-selectbox)
docs/MIGRATION.md # 1.x → 2.x consumer upgrade notes
.github/workflows/ # CI, Pages deploy, GitHub Releases on v* tags
pnpm example # Expo start (offline by default) — press i / a / w
pnpm example:web # browser via react-native-web
pnpm example:export:web # static export → apps/example/dist
pnpm typecheck
pnpm test # Jest (library) + example smoke
pnpm lint
pnpm format
pnpm --filter react-native-multi-selectbox build| Script | Purpose |
|---|---|
pnpm example |
Start Expo example (offline) |
pnpm example:web |
Start Expo web demo |
pnpm example:export:web |
Static expo export --platform web |
pnpm typecheck |
tsc in all packages |
pnpm test / pnpm test:ci |
Library Jest + example host smoke |
pnpm lint / pnpm format |
ESLint / Prettier |
Demo sources: apps/example/demos/ · app chrome: apps/example/App.tsx.
CI runs quality checks and deploys the web demo to GitHub Pages on push to master / main.
- Use pnpm from the repo root.
- Library code lives in
packages/multi-selectbox. Exercise changes withpnpm exampleandpnpm test. - Public API / consumer docs: update
packages/multi-selectbox/README.md. - Keep Prettier and ESLint clean (
pnpm format/pnpm lint). - User-facing changes: add a section under the next version in the root CHANGELOG.md only.
pnpm publish:libsyncs it topackages/multi-selectbox/CHANGELOG.mdfor npm (node scripts/sync-changelog.mjsto sync anytime).
- Bump
versioninpackages/multi-selectbox/package.jsonand add notes under that version in the root CHANGELOG.md (do not hand-edit the package copy). - Commit and push to
master. - From the monorepo root:
pnpm publish:lib
# with npm OTP if required:
pnpm publish:lib -- --otp=123456publish:lib publishes to npm, creates/pushes tag vX.Y.Z, and the Release workflow creates or updates the matching GitHub Release from the CHANGELOG section.
- npm only (no tag / no GH release):
pnpm publish:lib -- --no-tag - dry-run:
pnpm publish:lib -- --dry-run - re-run release for an existing tag: Actions → Release → Run workflow and enter
vX.Y.Z
Publish only from the library package (the repo root is a private monorepo workspace).
Open PRs against master. Describe the problem, the approach, and how you verified it (tests / example app).
Issues and PRs: github.com/sauzy34/react-native-multi-selectbox.