bluedogtraining/bdt-elm/27.0.7

NOTE: the latest version is 27.0.14

Toasters

Module to add Toasters to your app

Initialise and update

type Model

Add a Toasters.Model to your model.

type alias MyModel =
    { toasters : Toasters.Model
    }

Add a Toasters.Model to your model.

myInitialModel : MyModel
myInitialModel =
    { toasters = Toasters.init
    }
type Msg

Add a Toasters.Msg to your Msg.

type MyMsg
    = ToastersMsg Toasters.Msg

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 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

Add to your subscription function.

subscriptions : Model -> Sub Msg
subscriptions model =
    Sub.batch
        [ Toasters.subscription model.toasters |> Sub.map Msg.ToastersMsg
        ]

Add toasters

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
            }
                ! []

Add to your view

view : Model -> Html Msg

Add to your view function.

div
    []
    [ Toasters.view model.toasters
        |> Html.map ToastersMsg
    , div
        []
        [ text "My Cool App" ]
    ]