Skip to content

Latest commit

 

History

History
99 lines (68 loc) · 5.02 KB

File metadata and controls

99 lines (68 loc) · 5.02 KB

Changelog

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

Fixed

  • Multi-select chips with hideChipClose: equal horizontal padding so labels are visually centered (no longer left-heavy when the × control is omitted)

Documentation / examples

  • 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.tsx
    • activeOptionsLabelStyle, maxSelected, optionIdKey / optionLabelKey, optionsAlign, optionsMaxHeight
    • defaultOpen / onOpenChange, editable / hideDropdownIcon, hideChipClose, renderMultiChipLeading
  • Example app chrome: SectionList | ScrollView | APIs tabs
  • Smoke tests assert Additional APIs demo coverage

Upgrade

npm install react-native-multi-selectbox@2.0.3

Live demo (after Pages deploy from master): https://sauzy34.github.io/react-native-multi-selectbox/

2.0.2 - 2026-06-30

Added

  • activeOptionsLabelStyle for selected option labels in the list (#103)
  • maxSelected for multi-select limits (#70, #89)
  • optionIdKey / optionLabelKey to map non-item option shapes (#87, #88)
  • optionsAlign for option text alignment (#79)
  • optionsMaxHeight for tall option panels (#71)
  • defaultOpen and onOpenChange (#75, #59 callback)
  • editable and hideDropdownIcon (#59)
  • hideChipClose and renderMultiChipLeading (avatar slot) (#57, #76, #58)
  • Mounted guard to avoid setState after unmount (#72)

Tests

  • Feature suite covering the above APIs

2.0.1 - 2026-06-30

Documentation

  • 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.

Added

  • Full TypeScript public API (SelectOption, discriminated SelectBoxProps / 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 virtualized flag (default false: bounded ScrollView — safe under form hosts; true uses FlatList for large lists without a vertical scroll parent)
  • listScrollViewProps for non-virtualized options panel; listOptionProps for 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 resolves src via the react-native field

Changed

  • Peer dependencies are only react (≥18) and react-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

Removed

  • Legacy RN CLI app tree from the repository (android/, ios/, root App.js, etc.) — replaced by the Expo example
  • Published reliance on lodash and react-native-svg as peer dependencies of this package

Migration from 1.x

  1. Upgrade peers to React 18+ and React Native 0.73+ (Expo SDK 50+ recommended).
  2. Remove lodash / react-native-svg from your project if they were only installed for this package.
  3. Prefer forms hosted in ScrollView / FlatList / SectionList with the default virtualized={false}; set virtualized only for large option lists without an outer vertical scroll parent.
  4. Use TypeScript types from the package when possible; option shape remains { id, item }.
  5. See docs/MIGRATION.md for a short 1.x → 2.x upgrade checklist.

[1.5.0] - prior

Last line published from the pre-monorepo / JavaScript package layout. See npm history for 1.x details.