v0.1.2
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 aMapRef
implementation where each key is mapped to an FS2SignallingRef
. 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:
- Navigating between the all/active/completed views of the todo list is implemented via routing and can be observed in the URL.
- The todo list is now stored in a
SignallingSortedMapRef
. This significantly improved performance and closed #45. - 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:
- Requiring
Signal
instead ofStream
for rendering dynamic content e.g. via<--
. AStream
can always become aSignal
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. - 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
- Add docs about scheduling, microtasks, macrotasks by @armanbilge in #42
- Try to clarify Macrotask docs by @armanbilge in #50
- fix children clobber bug by @albertpchen in #90
- Adopt fs2-dom by @armanbilge in #95
- Router by @armanbilge in #68
- Website updates by @armanbilge in #97
- Introduce
SignallingSortedMapRef
by @armanbilge in #99 - Use local storage for persistent todos by @armanbilge in #102
- Optimizations by @armanbilge in #104
New Contributors
- @albertpchen made their first contribution in #90
Thank you so much for your contribution! ❤️
Full Changelog: v0.1.1...v0.1.2