40 lines
984 B
Elm
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 }
|