Skip to content

v0.1.2

Compare
Choose a tag to compare
@armanbilge armanbilge released this 14 Nov 22:10
· 25 commits to series/0.1 since this release
dc9f0e2

This is the third release in the 0.1.x series of Calico. There are two significant new features:

  • A new calico-router module, to add navigation to your application (i.e. URL-based, support for history forward/back, etc.). Check out the docs/demo.

  • A SignallingSortedMapRef, which is a MapRef implementation where each key is mapped to an FS2 SignallingRef. This enables precise updates and signals on a specific key.

In addition, Calico now has a dependency on fs2-dom, which provides idiomatic wrappers for several standard and useful browser APIs, such as Clipboard and local/session Storage.

The TodoMVC example has been updated to demonstrate each of these things:

  1. Navigating between the all/active/completed views of the todo list is implemented via routing and can be observed in the URL.
  2. The todo list is now stored in a SignallingSortedMapRef. This significantly improved performance and closed #45.
  3. The todo items are now persisted in your brower's local storage. Furthermore, if you have the Todo app open in multiple browser tabs, they will automatically stay in sync!

This will likely be the last 0.1.x release of Calico. I have already started work on Calico v0.2.0 in #107.

The overall feel will stay the same. Briefly, the major changes so far are:

  1. Requiring Signal instead of Stream for rendering dynamic content e.g. via <--. A Stream can always become a Signal by plugging in an initial value, and the presence of that initial value (indeed, the notion there is always a current value) is important for both correctness and performance.
  2. Some API restructuring so that Calico can be used to make effect agnostic components in tagless final style, without requiring Async[F] constraints everywhere.

If you have thoughts or feedback I would like to hear from you! :)

What's Changed

New Contributors

Thank you so much for your contribution! ❤️

Full Changelog: v0.1.1...v0.1.2