module View.View ( view ) where import Html (..) import Html.Attributes (..) import Html.Events (..) import Signal import List import Dict import Json.Decode as Json import Model.Model (..) import Model.Timer (..) import Model.Id (..) import Update.Update (..) import View.Timer (timerView) view : Model -> Html view model = div [] [ title , model.timers |> Dict.toList |> List.sortBy (.creationTime << snd) |> List.reverse |> timers model ] title : Html title = div [ class "headerBar" ] [ button [ onClick (Signal.send updates Initialize) , class "title" ] [ text "Timer" ] , button [ onClick (Signal.send updates AddNewTimer) , class "addTimer" ] [ i [ class "fa fa-fw fa-plus" ] [] ] ] onEnter : Signal.Message -> Attribute onEnter message = on "keydown" (Json.customDecoder keyCode is13) (always message) is13 : Int -> Result String () is13 code = if code == 13 then Ok() else Err "Not the right key code" timers : Model -> List (Id, Timer) -> Html timers model timers = div [ class "timers" ] (List.map (timerView model) timers)