All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Reflect.deleteProperty
was replaced bydelete
to be es5 compliant.
- Param
focusDetails
infocusSelf
andsetFocus
methods.
- Output bundle is now targeting ES5.
- Support for React v18 StrictMode. Added
useEffectOnce
to avoid multiple effect runs on mount that was breaking the generation of thefocusKey
s.
- Few TS errors that somehow not being checked when the app is built and published ¯_(ツ)_/¯.
- Function (
getCurrentFocusKey
) for retrieving the currently focused component's focus key - Support for passing multiple key codes per direction in
setKeyMap
- Added generic P type for the props passed to
useFocusable
hook that is available in all callbacks that bounce props back.
- Changed all
lodash
imports to cherry-picked ones to avoid the wholelodash
lib to be bundled in the project.
- Eslint dependencies required by
eslint-config-airbnb
- Fixed issue in Node environment - Webpack global object is now
this
instead ofself
- Added focusable component callbacks to the effect that updates them in
SpatialNavigation
service. Otherwise only the first closure is assigned to the service and is always called with the initial props.
- Changed
measureLayout
back to calculate coords based onoffsetTop/Left/Width/Height
instead ofgetClientBoundRect
. The reason is thatgetClientBoundRect
is less performant and calculates coordinates AFTER all the CSS transformations, which is undesirable for scaled or transformed elements.
- Updated Github path in
package.json
- Migrated the old HOC library to Hooks.