- Add the
::rumext.v2/memo
metadata for simplify the common case for memoization - Add the
::rumext.v2.props/expect
metadata for props checking; it accepts a set of props for simple existence checkong or map with predicates for simple type checking - Add native js destructuring support on props
- bugfixes
- bugfixes
- bugfixes
- Make the library more lightweight removing unnecesary and duplicated code
- Add the ability to define more react friendly components (for use outside cljs codebases).
- Add the ability to define lazy loading components
- Make
rumext.v2.compiler/compile-concat
public - Improve documentation
- Export
React.lazy
aslazy
helper - Add
lazy-component
macro that joins react lazy with shadow-cljs lazy loading
- Update to react>=18
- Bugfixes
- Bugfixes
- Add improve performance of internal css handling
- Minor updates
- Add with-fn macro
- Add the ability to destructure js props
- Make
use-id
available for react < 18. - Add
use-equal-memo
hook. - Add
use-debouce
hook. - Add experimental
use-ssr-effect
.
- Change version numbering: simplified.
- Add v2 namespace that compatible with React18 (still some warnings that will be addressed in next versions)
- Fix htmlFor attr handling
- Fix empty props handling on
[:&
handler - Minor optimizations with type hints
- Remove unused code
- Fix throttle higher-order component
- Refactor jsx compiler to extract key before call jsx functions.
- Fix race condition on
rumext.alpha/deref
hook.
- Minor fix on throttle and deferred higher-order components
- Fix
nil
props handling.
- More fixes related to jsx entry point changes.
- Fix void elements type
<hr />
(bug introduced in prev version).
- Revert all react-18 changes (will be released as separated package).
- Bundle simplified hicada compiler with simplier defaults.
- Start using public api of JSX runtime instead of require the private production API.
- Fix key warnings.
- Use proper jsx runtime import
- Upgrade to react-18
- Avoid call internal deref on the deref hook.
- Make the state return value stable if the state value does not changes.
- Allow use use-var return value on VDOM ref attrs.
- Dependencies updates
- Add with-effect hook/macro.
- Add with-memo hook/macro.
- Fix incompatibilities with hicada 0.1.9
- Fix bug in
adapt
with keywords. - Update hicada to 0.1.9
- Add
check-props
helper.
- Add
::mf/forward-ref
metadata and support for multiple arguments for components.
- Fix issues in previous release.
- Fix minor issues on previous version related
to the optimized
create-element
function.
- Add highly optimized version of create-element.
- Properly memoize result of use-var.
- Update deps.
- Add
:rumext.alpha/register
and:rumext.alpha/register-as
component metadata for automatically register the component on some atom.
- Bugfixes.
- Add context api.
- Fix a memory leak warning on throttle higher-order component.
- Do not reverse wrappers.
- Minor performance optimizations.
- Add throttle higher-order component.
- Add deferred higher-order component.
- Update documentation.
- Change license to MPL 2.0.
- Revert microtask changes.
- Schedule a microtask for adding watcher in
deref
hook. - Properly return value on use-var hook impl functions.
- Use
Symbol
instead ofgensym
onderef
(faster and more compatible withfuncool/okulary
). - Expose
Profiler
. - Remove hydrante function.
- Fix component naming issues when wrap is used.
- Fix bugs with Fragments.
- Fix bugs on catch higher-order component.
- Fix bugs on use-memo and use-callback.
- Fix bugs on catch higher-order component.
- Simplify
defc
andfnc
macros. - Add
catch
higher-order error boundary component. - Rename
memo
tomemo'
. - Rename
wrap-memo
tomemo
. - Keep
wrap-memo
as backward compatible alias.
- Add
rumext.alpha/memo
as a raw variant ofwrap-memo
.
- Add
fnc
macro for define anonymous components (useful for define higher-order components). - Depend directrly from react and react-dom from npm. No more cljsjs packages.
- Add printability for Symbol.
- Refactor hooks (make they almost 0 runtime cost).
- Remove all old obsolete code.
- Remove macros for define class based components.
- Many performance improvements and code simplification.
- Complete rewrite.
- Initial release.