mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-17 09:37:02 +00:00
ui: impl Timer.schedule function
This commit is contained in:
@@ -93,7 +93,7 @@ type Msg
|
||||
| OpenMailbox
|
||||
| RecentMenuMouseOver
|
||||
| RecentMenuMouseOut
|
||||
| RecentMenuTimeout Timer ()
|
||||
| RecentMenuTimeout Timer
|
||||
| RecentMenuToggled
|
||||
|
||||
|
||||
@@ -155,10 +155,10 @@ update msg model session =
|
||||
| recentMenuTimer = newTimer
|
||||
}
|
||||
, session
|
||||
, Process.sleep 400 |> Task.perform (RecentMenuTimeout newTimer >> model.mapMsg)
|
||||
, Timer.schedule (RecentMenuTimeout >> model.mapMsg) newTimer 400
|
||||
)
|
||||
|
||||
RecentMenuTimeout timer _ ->
|
||||
RecentMenuTimeout timer ->
|
||||
if timer == model.recentMenuTimer then
|
||||
( { model
|
||||
| recentMenuVisible = False
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
module Timer exposing (Timer, cancel, empty, replace)
|
||||
module Timer exposing (Timer, cancel, empty, replace, schedule)
|
||||
|
||||
import Process
|
||||
import Task
|
||||
|
||||
|
||||
{-| Implements an identity to track an asynchronous timer.
|
||||
-}
|
||||
|
||||
|
||||
type Timer
|
||||
= Empty
|
||||
| Idle Int
|
||||
@@ -15,6 +17,11 @@ empty =
|
||||
Empty
|
||||
|
||||
|
||||
schedule : (Timer -> msg) -> Timer -> Float -> Cmd msg
|
||||
schedule message timer millis =
|
||||
Task.perform (always (message timer)) (Process.sleep millis)
|
||||
|
||||
|
||||
{-| Replaces the provided timer with a newly created one.
|
||||
-}
|
||||
replace : Timer -> Timer
|
||||
|
||||
Reference in New Issue
Block a user