diff options
author | William Carroll <wpcarro@gmail.com> | 2020-05-17T19·42+0100 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-05-17T19·48+0100 |
commit | 05a2ea6bb7af37d8d5afdc28efddb3e6d2f9e746 (patch) | |
tree | 816489e0c2d381695b7cd7087cc40c8aca91a69d /boilerplate/elm/src/State.elm | |
parent | 066b1441b29df2d9616eabc8680e912e912cbb07 (diff) |
Support boilerplate for Elm clients
Lately I was toiling while writing a ClojureScript client. This made me crave Elm. I'm going to rewrite the ClojureScript client using Elm, but along the way, I'm stopping off here and recording my starter boilerplate.
Diffstat (limited to 'boilerplate/elm/src/State.elm')
-rw-r--r-- | boilerplate/elm/src/State.elm | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/boilerplate/elm/src/State.elm b/boilerplate/elm/src/State.elm new file mode 100644 index 000000000000..c1edae8bb638 --- /dev/null +++ b/boilerplate/elm/src/State.elm @@ -0,0 +1,43 @@ +module State exposing (..) + + +type Msg + = DoNothing + | SetView View + + +type View + = Landing + | Login + + +type alias Model = + { isLoading : Bool + , view : View + } + + +{-| The initial state for the application. +-} +init : Model +init = + { isLoading = False + , view = Landing + } + + +{-| Now that we have state, we need a function to change the state. +-} +update : Msg -> Model -> ( Model, Cmd Msg ) +update msg model = + case msg of + DoNothing -> + ( model, Cmd.none ) + + SetView x -> + ( { model + | view = x + , isLoading = True + } + , Cmd.none + ) |