Module to add Toasters to your app
Add a Toasters.Model to your model.
type alias MyModel =
{ toasters : Toasters.Model
}
init : Model
Add a Toasters.Model to your model.
myInitialModel : MyModel
myInitialModel =
{ toasters = Toasters.init
}
Add a Toasters.Msg to your Msg.
type MyMsg
= ToastersMsg Toasters.Msg
update : Msg -> Model -> Model
Use in your update function.
myUpdate : Msg -> Model -> ( Model, Cmd Msg )
myUpdate msg model =
case msg of
ToastersMsg toastersMsg ->
{ model | toasters = Toasters.update toastersMsg model.toasters } ! []
merge : Model -> Model -> Model
Merge multiple toaster models into one. Useful when Return types that carry their own Toasters.Model want to merge back into the application Toasters.Model
{ appModel | toasters = Toasters.merge return.toasters appModel.toasters }
subscription : Model -> Platform.Sub.Sub Msg
Add to your subscription function.
subscriptions : Model -> Sub Msg
subscriptions model =
Sub.batch
[ Toasters.subscription model.toasters |> Sub.map Msg.ToastersMsg
]
addGreen : String -> Model -> Model
Add to your subscription function.
myUpdate : Msg -> Model -> ( Model, Cmd Msg )
myUpdate msg model =
case msg of
SavedSuccessfully ->
{ model
| isSaving = False
, toasters = Toasters.addGreen "Data saved Successfully :)" model.toasters
}
! []
addRed : String -> Model -> Model
Add to your subscription function.
myUpdate : Msg -> Model -> ( Model, Cmd Msg )
myUpdate msg model =
case msg of
SavingFailed ->
{ model
| isSaving = False
, toasters = Toasters.addRed "Data could not be saved :(" model.toasters
}
! []
view : Model -> Html.Styled.Html Msg
Add to your view function.
div
[]
[ Toasters.view model.toasters
|> Html.map ToastersMsg
, div
[]
[ text "My Cool App" ]
]