Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Util exposing (..)
- import Html.Events exposing (on, keyCode)
- import Html exposing (Attribute)
- import Json.Decode as Json
- {-| Conditionally emit msg defined by `tagger` if the
- key pressed was the enter key
- -}
- onEnter : msg -> Attribute msg
- onEnter tagger =
- onKeyDown tagger <| \key -> key == 13
- {-| Conditionally emit msg defined by `tagger` based
- on return value of `pred`.
- -}
- onKeyDown : msg -> (Int -> Bool) -> Attribute msg
- onKeyDown tagger pred =
- on "keydown"
- (keyCode
- |> Json.map pred
- |> Json.andThen
- (\result ->
- if result then
- Json.succeed tagger
- else
- Json.fail ""
- )
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement