Fable.Elmish.Adaptive

CI - Linux CI - Windows

Note that I'm currently experimenting with performance improvements, so until this is finished quality and performance may vary...

Aims to provide adaptive bindings for ELM-style UI in Fable.
In order to keep the view-code as compatible as possible our AdaptiveComponents are directly implemented as ReactComponent and internally manage their DOM (directly modifying it without react knowing). Nonetheless it is worth mentioning that the component uses react for rendering its children again, maximizing compatibiity and leveraging react's reliable update logic.

If you have any questions or want to get involved just join us on discord: Discord

Building

npm install build

The Demo project can be started using build -t Watch (starting a webpack-dev-server) or build -t Run(Debug|Release) (bundling the demo project and starting a web-server in the output directory)

Switching between Demos currently requires changing src/Demo/Program.fs atm.

Demos

The Demo project currently contains two examples:

  • SimpleApp.fs using elmish(ish) MVU updates. However since Adaptify is not yet finished the example is limited to a primitive model.
  • AdaptiveListDemo.fs using Fable.React.Adaptive for rendering an alist of nodes with the possiblity to insert/change/remove nodes (not using MVU style updates atm.)
  • TodoMvc.fs is a port of fable's react-todomvc using our elmish(ish) view functions and Adaptify for adaptifying its model. There's also a live demo which currenlty does not store the model in the localstorage due to serialization issues with our IndexList but we'll fix that eventually.