All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.0.3 - 2026-06-30
- Multi-select chips with
hideChipClose: equal horizontal padding so labels are visually centered (no longer left-heavy when the × control is omitted)
- Reverted long copy-paste examples from the package README (table of 2.0.2+ controls remains)
- Added interactive APIs tab in the Expo example:
apps/example/demos/AdditionalApisDemo.tsxactiveOptionsLabelStyle,maxSelected,optionIdKey/optionLabelKey,optionsAlign,optionsMaxHeightdefaultOpen/onOpenChange,editable/hideDropdownIcon,hideChipClose,renderMultiChipLeading
- Example app chrome: SectionList | ScrollView | APIs tabs
- Smoke tests assert Additional APIs demo coverage
npm install react-native-multi-selectbox@2.0.3Live demo (after Pages deploy from master): https://sauzy34.github.io/react-native-multi-selectbox/
2.0.2 - 2026-06-30
activeOptionsLabelStylefor selected option labels in the list (#103)maxSelectedfor multi-select limits (#70, #89)optionIdKey/optionLabelKeyto map non-itemoption shapes (#87, #88)optionsAlignfor option text alignment (#79)optionsMaxHeightfor tall option panels (#71)defaultOpenandonOpenChange(#75, #59 callback)editableandhideDropdownIcon(#59)hideChipCloseandrenderMultiChipLeading(avatar slot) (#57, #76, #58)- Mounted guard to avoid setState after unmount (#72)
- Feature suite covering the above APIs
2.0.1 - 2026-06-30
- Split README roles: package README is the consumer source of truth (npm); root README is the monorepo/contributor hub
- Full install, examples, props, and scrolling-host guidance live in
packages/multi-selectbox/README.md
2.0.0 - 2026-06-30
Major rewrite: TypeScript library in a pnpm monorepo with an Expo example app. Published package source: packages/multi-selectbox.
- Full TypeScript public API (
SelectOption, discriminatedSelectBoxProps/ single vs multi) - Expo SDK 56 example app (
apps/example) with SectionList and ScrollView host demos - Live web demo on GitHub Pages: https://sauzy34.github.io/react-native-multi-selectbox/
- Options panel
virtualizedflag (defaultfalse: bounded ScrollView — safe under form hosts;trueuses FlatList for large lists without a vertical scroll parent) listScrollViewPropsfor non-virtualized options panel;listOptionPropsfor FlatList mode- Filter clear control, full-row option press, multi chips via horizontal ScrollView
- Built-in text glyph icons (no SVG dependency)
- Jest + React Native Testing Library suite under
packages/multi-selectbox/__tests__ - CI: typecheck, package build, lint, format, tests; Pages deploy from
master/main - Compile step emits
dist/(CommonJS + declarations) for npm consumers; Metro still resolvessrcvia thereact-nativefield
- Peer dependencies are only
react(≥18) andreact-native(≥0.73). Previous peer packages (e.g.lodash,react-native-svg) are no longer required and should be removed from your app if you only used them for this library. - Package is TypeScript-first with typed props; install remains
npm install react-native-multi-selectbox - Default options list behavior prioritizes host safety (
virtualized={false}) over windowing
- Legacy RN CLI app tree from the repository (
android/,ios/, rootApp.js, etc.) — replaced by the Expo example - Published reliance on lodash and react-native-svg as peer dependencies of this package
- Upgrade peers to React 18+ and React Native 0.73+ (Expo SDK 50+ recommended).
- Remove
lodash/react-native-svgfrom your project if they were only installed for this package. - Prefer forms hosted in
ScrollView/FlatList/SectionListwith the defaultvirtualized={false}; setvirtualizedonly for large option lists without an outer vertical scroll parent. - Use TypeScript types from the package when possible; option shape remains
{ id, item }. - See docs/MIGRATION.md for a short 1.x → 2.x upgrade checklist.
Last line published from the pre-monorepo / JavaScript package layout. See npm history for 1.x details.