1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 17:47:03 +00:00

ui: Allow tab+enter nav of monitor messages

This commit is contained in:
James Hillyerd
2019-02-16 10:34:48 -08:00
parent 3c2b302a5f
commit 7cd45ff3c7

View File

@@ -36,6 +36,7 @@ type Msg
| MessageReceived D.Value
| Clear
| OpenMessage MessageHeader
| MessageKeyPress MessageHeader Int
update : Msg -> Model -> ( Model, Cmd Msg )
@@ -69,9 +70,22 @@ update msg model =
( { model | messages = [] }, Cmd.none )
OpenMessage header ->
( model
, Route.pushUrl model.session.key (Route.Message header.mailbox header.id)
)
openMessage header model
MessageKeyPress header keyCode ->
case keyCode of
13 ->
openMessage header model
_ ->
( model, Cmd.none )
openMessage : MessageHeader -> Model -> ( Model, Cmd Msg )
openMessage header model =
( model
, Route.pushUrl model.session.key (Route.Message header.mailbox header.id)
)
@@ -121,7 +135,11 @@ view model =
viewMessage : Time.Zone -> MessageHeader -> Html Msg
viewMessage zone message =
tr [ Events.onClick (OpenMessage message) ]
tr
[ tabindex 0
, Events.onClick (OpenMessage message)
, onKeyUp (MessageKeyPress message)
]
[ td [] [ shortDate zone message.date ]
, td [ class "desktop" ] [ text message.from ]
, td [] [ text message.mailbox ]
@@ -147,3 +165,8 @@ shortDate zone date =
zone
date
|> text
onKeyUp : (Int -> msg) -> Attribute msg
onKeyUp tagger =
Events.on "keyup" (D.map tagger Events.keyCode)