Expirable
Manage values that expire after a period of time.
Example
import Expirable exposing (Expirable)
type alias Model =
{ toastMessages : List (Expirable String)
}
type Msg
= DecrementToastMessages Time.Time
initial : Model
initial =
{ toastMessages =
[ Expirable.build (Expirable.seconds 5) "Hi there"
, Expirable.build (Expirable.seconds 30) "This goes longer"
]
}
subscriptions : Model -> Sub Msg
subscriptions model =
Expirable.subscription DecrementToastMessages
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
DecrementToastMessages time ->
{ model
| toastMessages = Expirable.tickAll time model.toastMessages
}
! []
License
See the LICENSE file.
About thoughtbot
Expirable is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.
We love open source software! See our other projects or hire us to design, develop, and grow your product.