You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
808 B
64 lines
808 B
module Main exposing (..)
|
|
|
|
-- Press buttons to increment and decrement a counter.
|
|
--
|
|
-- Read how it works:
|
|
-- https://guide.elm-lang.org/architecture/buttons.html
|
|
--
|
|
|
|
|
|
import Browser
|
|
import Html exposing (Html, button, div, text)
|
|
import Html.Events exposing (onClick)
|
|
|
|
|
|
|
|
-- MAIN
|
|
|
|
|
|
main =
|
|
Browser.sandbox { init = init, update = update, view = view }
|
|
|
|
|
|
|
|
-- MODEL
|
|
|
|
|
|
type alias Model = Int
|
|
|
|
|
|
init : Model
|
|
init =
|
|
0
|
|
|
|
|
|
|
|
-- UPDATE
|
|
|
|
|
|
type Msg
|
|
= Increment
|
|
| Decrement
|
|
|
|
|
|
update : Msg -> Model -> Model
|
|
update msg model =
|
|
case msg of
|
|
Increment ->
|
|
model + 1
|
|
|
|
Decrement ->
|
|
model - 1
|
|
|
|
|
|
|
|
-- VIEW
|
|
|
|
|
|
view : Model -> Html Msg
|
|
view model =
|
|
div []
|
|
[ button [ onClick Decrement ] [ text "-" ]
|
|
, div [] [ text (String.fromInt model) ]
|
|
, button [ onClick Increment ] [ text "+" ]
|
|
] |