mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-18 10:07:02 +00:00
ui: Allow tab+enter nav of monitor messages
This commit is contained in:
@@ -36,6 +36,7 @@ type Msg
|
|||||||
| MessageReceived D.Value
|
| MessageReceived D.Value
|
||||||
| Clear
|
| Clear
|
||||||
| OpenMessage MessageHeader
|
| OpenMessage MessageHeader
|
||||||
|
| MessageKeyPress MessageHeader Int
|
||||||
|
|
||||||
|
|
||||||
update : Msg -> Model -> ( Model, Cmd Msg )
|
update : Msg -> Model -> ( Model, Cmd Msg )
|
||||||
@@ -69,9 +70,22 @@ update msg model =
|
|||||||
( { model | messages = [] }, Cmd.none )
|
( { model | messages = [] }, Cmd.none )
|
||||||
|
|
||||||
OpenMessage header ->
|
OpenMessage header ->
|
||||||
( model
|
openMessage header model
|
||||||
, Route.pushUrl model.session.key (Route.Message header.mailbox header.id)
|
|
||||||
)
|
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 : Time.Zone -> MessageHeader -> Html Msg
|
||||||
viewMessage zone message =
|
viewMessage zone message =
|
||||||
tr [ Events.onClick (OpenMessage message) ]
|
tr
|
||||||
|
[ tabindex 0
|
||||||
|
, Events.onClick (OpenMessage message)
|
||||||
|
, onKeyUp (MessageKeyPress message)
|
||||||
|
]
|
||||||
[ td [] [ shortDate zone message.date ]
|
[ td [] [ shortDate zone message.date ]
|
||||||
, td [ class "desktop" ] [ text message.from ]
|
, td [ class "desktop" ] [ text message.from ]
|
||||||
, td [] [ text message.mailbox ]
|
, td [] [ text message.mailbox ]
|
||||||
@@ -147,3 +165,8 @@ shortDate zone date =
|
|||||||
zone
|
zone
|
||||||
date
|
date
|
||||||
|> text
|
|> text
|
||||||
|
|
||||||
|
|
||||||
|
onKeyUp : (Int -> msg) -> Attribute msg
|
||||||
|
onKeyUp tagger =
|
||||||
|
Events.on "keyup" (D.map tagger Events.keyCode)
|
||||||
|
|||||||
Reference in New Issue
Block a user