Created
January 5, 2017 03:59
-
-
Save RyanCCollins/956f6d4964ec4999b9aac35d67b22916 to your computer and use it in GitHub Desktop.
Elm reducer / union type example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type alias Model = | |
{ error: Maybe String | |
, message: Maybe String | |
, isSubmitting: Bool | |
} | |
type alias Error = | |
{ message: String } | |
type Msg | |
= ClearAlerts | |
| SubmissionInitiation | |
| SubmissionSuccess | |
| SubmissionError Error | |
| SubmissionMessage String | |
initModel : (Model, Cmd Msg) | |
initModel = | |
{ error = Nothing | |
, message = Nothing | |
, isSubmitting = False | |
} | |
![] | |
-- Update (Note, I remove the Cmd ![] return value from each of these for brevity sake. | |
update : Msg -> Model -> (Model, Cmd Msg) | |
update msg model = | |
case msg of | |
ClearAlerts -> | |
{ model | error = Nothing, message = Nothing } | |
SubmissionInitiation -> | |
{ model | isSubmitting = True } | |
SubmissionInitiation -> | |
{ model | isSubmitting = True } | |
SubmissionError err -> | |
{ model | error = err } | |
SubmissionMessage message -> | |
{ model | message = message } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment