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

ui: Simplify updateMarkMessageSeen

This commit is contained in:
James Hillyerd
2020-04-11 16:11:28 -07:00
parent 9e1da20782
commit 65a6ab2b4f

View File

@@ -270,8 +270,6 @@ update msg model =
) )
MarkSeenTriggered timer -> MarkSeenTriggered timer ->
case model.state of
ShowingList _ (ShowingMessage _) ->
if timer == model.markSeenTimer then if timer == model.markSeenTimer then
-- Matching timer means we have changed messages, mark this one seen. -- Matching timer means we have changed messages, mark this one seen.
updateMarkMessageSeen model updateMarkMessageSeen model
@@ -279,9 +277,6 @@ update msg model =
else else
( model, Cmd.none ) ( model, Cmd.none )
_ ->
( model, Cmd.none )
Tick now -> Tick now ->
( { model | now = now }, Cmd.none ) ( { model | now = now }, Cmd.none )
@@ -419,26 +414,28 @@ updateDeleteMessage model message =
( model, Cmd.none ) ( model, Cmd.none )
{-| Updates both the active message, and the message list to mark the currently viewed message as seen.
-}
updateMarkMessageSeen : Model -> ( Model, Cmd Msg ) updateMarkMessageSeen : Model -> ( Model, Cmd Msg )
updateMarkMessageSeen model = updateMarkMessageSeen model =
case model.state of case model.state of
ShowingList list (ShowingMessage message) -> ShowingList messages (ShowingMessage visibleMessage) ->
let let
updateSeen header = updateHeader header =
if header.id == message.id then if header.id == visibleMessage.id then
{ header | seen = True } { header | seen = True }
else else
header header
map f messageList = newMessages =
{ messageList | headers = List.map f messageList.headers } { messages | headers = List.map updateHeader messages.headers }
in in
( { model ( { model
| state = | state =
ShowingList (map updateSeen list) (ShowingMessage { message | seen = True }) ShowingList newMessages (ShowingMessage { visibleMessage | seen = True })
} }
, Api.markMessageSeen MarkSeenLoaded message.mailbox message.id , Api.markMessageSeen MarkSeenLoaded visibleMessage.mailbox visibleMessage.id
) )
_ -> _ ->