mirror of
https://github.com/jhillyerd/inbucket.git
synced 2026-01-07 19:57:06 +00:00
feat: Monitor tab dynamically updates when messages are deleted (#337)
* WIP: msghub handles deletes, UI does not yet display them Signed-off-by: James Hillyerd <james@hillyerd.com> * socket and UI support message deletes Signed-off-by: James Hillyerd <james@hillyerd.com> * use Delete naming for consistency Signed-off-by: James Hillyerd <james@hillyerd.com> --------- Signed-off-by: James Hillyerd <james@hillyerd.com>
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
module Page.Monitor exposing (Model, Msg, init, update, view)
|
||||
|
||||
import Api
|
||||
import Data.MessageHeader as MessageHeader exposing (MessageHeader)
|
||||
import Data.MessageHeader exposing (MessageHeader)
|
||||
import Data.MonitorEvent as MonitorEvent
|
||||
import Data.Session exposing (Session)
|
||||
import DateFormat as DF
|
||||
import Effect exposing (Effect)
|
||||
@@ -68,11 +69,23 @@ update msg model =
|
||||
( { model | connected = False }, Effect.none )
|
||||
|
||||
MessageReceived value ->
|
||||
case D.decodeValue (MessageHeader.decoder |> D.at [ "detail" ]) value of
|
||||
Ok header ->
|
||||
( { model | messages = header :: List.take 500 model.messages }
|
||||
, Effect.none
|
||||
)
|
||||
case D.decodeValue (MonitorEvent.decoder |> D.at [ "detail" ]) value of
|
||||
Ok event ->
|
||||
case event of
|
||||
MonitorEvent.MessageDeleted deleted ->
|
||||
( { model
|
||||
| messages =
|
||||
List.filter
|
||||
(\x -> x.mailbox /= deleted.mailbox || x.id /= deleted.id)
|
||||
model.messages
|
||||
}
|
||||
, Effect.none
|
||||
)
|
||||
|
||||
MonitorEvent.MessageStored header ->
|
||||
( { model | messages = header :: List.take 500 model.messages }
|
||||
, Effect.none
|
||||
)
|
||||
|
||||
Err err ->
|
||||
let
|
||||
|
||||
Reference in New Issue
Block a user