Skip to content

v5.3.0

Choose a tag to compare

@jamesgpearce jamesgpearce released this 13 Sep 17:12
· 646 commits to main since this release

This release is focussed on a few API improvements and quality-of-life changes. These include:

React SSR support

Thanks to contributor Muhammad Muhajir (@muhajirdev) for ensuring that TinyBase runs in server-side rendering environments!

In the persisters module...

All Persister objects now expose information about whether they are loading or saving. To access this Status, use:

  • The getStatus method, which will return 0 when it is idle, 1 when it is loading, and 2 when it is saving.
  • The addStatusListener method, which lets you add a StatusListener function and which is called whenever the status changes.

These make it possible to track background load and save activities, so that, for example, you can show a status-bar spinner of asynchronous persistence activity.

In the synchronizers module...

Synchronizers are a sub-class of Persister, so all Synchronizer objects now also have:

  • The getStatus method, which will return 0 when it is idle, 1 when it is 'loading' (ie inbound syncing), and 2 when it is 'saving' (ie outbound syncing).
  • The addStatusListener method, which lets you add a StatusListener function and which is called whenever the status changes.

In the ui-react module...

There are corresponding hooks so that you can build these status changes into a React UI easily:

And correspondingly for Synchronizers:

In addition, this module also now includes hooks for injecting objects into the Provider context scope imperatively, much like the existing useProvideStore hook:

All of these new methods have extensive documentation, each with examples to show how to use them.

Please provide feedback on this new release on GitHub!