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
'sdirection
prop)
🐞 Bugfix
- Fix intermitent, edge-case scrolling issues - code changes to
useMenuPositioner.ts
hook - Fix touch/mouse event issues with
MultiValue.tsx
component - 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": true
and"emca": 2015
torollup-terser-plugin
options config - Bundle-size optimization (reduction): Update to
rollup.config.js
- add final step to bundling process to removedata-testid
attributes from source code (using@rollup/plugin-replace
)
v3.1.1
Change Log
🐞 Bugfix
- Update enums in
src/constants/enums.ts
to 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 passingstring
values to propertiesmenuPosition
andfilterMatchFrom
.
v3.1.0
Change Log
🚀 Feature
- New property:
ariaLive
|"off" | "polite" | "assertive"
| default:"polite"
.
🛠 Misc
- Refactor
AriaLiveRegion.tsx
component - 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
null
or''
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
-classNames
specified 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
&MenuList
components from the DOM based on themenuOpen
state 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
ref
object, check out the Methods Demo
🛠 Misc
- Performance: Optimized code + refactoring
- Performance: Optimized configuration in
rollup.config.js
&tsconfig.ts
&babel.config.js
to 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
tabIndex
by setting<input>
element withtabIndex
of 0 (instead of -1) - Improve type support for various objects - apply custom
PartialDeep
type recursively to all sub-properties/sub-objects ofTheme
to 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.ts
hook, convert.reduce()
to plainfor loop
; inSelect.tsx
component, createref
to hold current value formenuOpen
boolean flag and reference in memoized callbacks to prevent excessive rerendering in referenced child components.