Files
elm-0.19-workshop/part2/src/Util.elm
2018-04-30 05:32:09 -04:00

40 lines
984 B
Elm

module Util exposing (appendErrors, onClickStopPropagation, pair, viewIf)
import Html exposing (Attribute, Html)
import Html.Events exposing (defaultOptions, onWithOptions)
import Json.Decode as Decode
{-| Useful when building up a Cmd via a pipeline, and then pairing it with
a model at the end.
session.user
|> User.Request.foo
|> Task.attempt Foo
|> pair { model | something = blah }
-}
pair : a -> b -> ( a, b )
pair first second =
( first, second )
viewIf : Bool -> Html msg -> Html msg
viewIf condition content =
if condition then
content
else
Html.text ""
onClickStopPropagation : msg -> Attribute msg
onClickStopPropagation msg =
onWithOptions "click"
{ defaultOptions | stopPropagation = True }
(Decode.succeed msg)
appendErrors : { model | errors : List error } -> List error -> { model | errors : List error }
appendErrors model errors =
{ model | errors = model.errors ++ errors }