Skip to content

Releases: based-ghost/react-functional-select

v3.2.0

31 Mar 00:31
Compare
Choose a tag to compare

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 to react-window's direction 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

22 Mar 17:44
Compare
Choose a tag to compare

Change Log

🛠 Misc

  • Bundle-size optimization (reduction): Update to rollup.config.js - add "pure_getters": true and "emca": 2015 to rollup-terser-plugin options config
  • Bundle-size optimization (reduction): Update to rollup.config.js - add final step to bundling process to remove data-testid attributes from source code (using @rollup/plugin-replace)

v3.1.1

18 Mar 14:46
Compare
Choose a tag to compare

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 passing string values to properties menuPosition and filterMatchFrom.

v3.1.0

18 Mar 14:41
Compare
Choose a tag to compare

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

04 Mar 13:06
Compare
Choose a tag to compare

Change Log

🚀 Feature

  • New functionality: added ability to hide the menu when search input returns no items (pass value of null or '' for property noOptionsMsg)

🛠 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

18 Feb 01:02
3c0c176
Compare
Choose a tag to compare

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 to true, this will mount/dismount the Menu & MenuList components from the DOM based on the menuOpen state value - default behavior is to just show/hide markup using display: 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

25 Nov 03:17
Compare
Choose a tag to compare

Update to rollup + babel configuration resulting in a smaller, more optimized bundle.

v2.9.3

21 Nov 18:20
Compare
Choose a tag to compare

Change Log

🐞 Bugfix

  • Fix for issue #20 (Accessibility issue/question) - make control eligible for tabIndex by setting <input> element with tabIndex of 0 (instead of -1)
  • Improve type support for various objects - apply custom PartialDeep type recursively to all sub-properties/sub-objects of Theme to provide more flexibility when defining partials in consuming components

v2.9.1

10 Oct 19:40
Compare
Choose a tag to compare

Change Log

🐞 Bugfix

  • Fix exported typing error introduced in the previous release - v2.9.0

v2.9.0

10 Oct 19:20
Compare
Choose a tag to compare

Change Log

🛠 Misc

  • Performance optimizations (2) - in useMenuOptions.ts hook, convert .reduce() to plain for loop; in Select.tsx component, create ref to hold current value for menuOpen boolean flag and reference in memoized callbacks to prevent excessive rerendering in referenced child components.