astynax/tea-combine/2.0.1

NOTE: the latest version is 3.1.0

TEA Combine

A set of combinators for working with stateful (and effectful) components.

Using this library you can do this:

import Browser
import CheckBox
import Counter
import Html
import TeaCombine exposing (..)
import TeaCombine.Pure.Pair exposing (..)


main =
    Browser.sandbox
        { init =
            Counter.model
                |> initWith (CheckBox.init False)
                |> initWith (CheckBox.init False)
        , view =
            Html.div []
                << (joinViews Counter.view CheckBox.view
                        |> withView CheckBox.view
                   )
        , update =
            Counter.update
                |> updateWith CheckBox.update
                |> updateWith CheckBox.update
        }

and have an app that looks like this:

screenshot

Examples (sources you can find here):