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:
@@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
_ ->
|
_ ->
|
||||||
|
|||||||
Reference in New Issue
Block a user