Releases: based-ghost/react-functional-select
v3.2.0
Change Log
🚀 Feature
- New property:
menuItemDirection|"ltr" | "rtl"| default:"ltr"- the direction of text for each menu option and position of the menu's scroll bar (maps toreact-window'sdirectionprop)
🐞 Bugfix
- Fix intermitent, edge-case scrolling issues - code changes to
useMenuPositioner.tshook - Fix touch/mouse event issues with
MultiValue.tsxcomponent - clear icon (touch events on clear icon can result in multiple clears as other multi value components shift under finger)
🛠 Misc
- Performance: hoist frequently referenced functions to utility files and export as static instance; reduce complexity of longer functions via abstraction to smaller, narrowed scope functions to help with JIT optimizations
v3.1.2
Change Log
🛠 Misc
- Bundle-size optimization (reduction): Update to
rollup.config.js- add"pure_getters": trueand"emca": 2015torollup-terser-pluginoptions config - Bundle-size optimization (reduction): Update to
rollup.config.js- add final step to bundling process to removedata-testidattributes from source code (using@rollup/plugin-replace)
v3.1.1
Change Log
🐞 Bugfix
- Update enums in
src/constants/enums.tsto be "const as const objects" - results in less code, is closer to javascript patterns, and type checking for params that use these "enums" encounter no issues. This fixes type-checking issues encountered when passingstringvalues to propertiesmenuPositionandfilterMatchFrom.
v3.1.0
Change Log
🚀 Feature
- New property:
ariaLive|"off" | "polite" | "assertive"| default:"polite".
🛠 Misc
- Refactor
AriaLiveRegion.tsxcomponent - Update regex that checks for IE/Edge browsers to exclude chromium-based Edge browsers as the reason the check is performed is not pertinent to newer versions of Edge (used to determine if IE/Legacy Edge specific CSS is applied to
<input />element
v3.0.1
Change Log
🚀 Feature
- New functionality: added ability to hide the menu when search input returns no items (pass value of
nullor''for propertynoOptionsMsg)
🛠 Misc
- Config: expand browserlist support by changing first line from >1% to >0.25% (currently has no actual effect on polyfilling, given current browsers - bundle size remains unchanged)
v3.0.0
Change Log
💥 Breaking Changes
- Removal of property
addClassNames|boolean-classNamesspecified in the Style Demo are now just always added for simplicity,
🚀 Feature
-
New property:
lazyLoadMenu|boolean | undefined| default:undefined. When explicity set totrue, this will mount/dismount theMenu&MenuListcomponents from the DOM based on themenuOpenstate value - default behavior is to just show/hide markup usingdisplay: none;CSS. -
New property (Enables menu element portaling):
menuPortalTarget|Element | undefined| default:undefined. Whether the menu should use a portal, and where it should attach. -
New property (
ref object):empty|boolean. Whether the select has a value. -
New property (
ref object):menuOpen|boolean. Whether or not the menu is open. -
For more information regarding methods & properties accessible on the
refobject, check out the Methods Demo
🛠 Misc
- Performance: Optimized code + refactoring
- Performance: Optimized configuration in
rollup.config.js&tsconfig.ts&babel.config.jsto reduce bundle size and transpile code to be as runtime efficient as possible
v2.9.4
Update to rollup + babel configuration resulting in a smaller, more optimized bundle.
v2.9.3
Change Log
🐞 Bugfix
- Fix for issue #20 (Accessibility issue/question) - make control eligible for
tabIndexby setting<input>element withtabIndexof 0 (instead of -1) - Improve type support for various objects - apply custom
PartialDeeptype recursively to all sub-properties/sub-objects ofThemeto provide more flexibility when defining partials in consuming components
v2.9.1
Change Log
🐞 Bugfix
- Fix exported typing error introduced in the previous release -
v2.9.0
v2.9.0
Change Log
🛠 Misc
- Performance optimizations (2) - in
useMenuOptions.tshook, convert.reduce()to plainfor loop; inSelect.tsxcomponent, createrefto hold current value formenuOpenboolean flag and reference in memoized callbacks to prevent excessive rerendering in referenced child components.