diff options
Diffstat (limited to 'users/wpcarro/boilerplate/elm/src')
-rw-r--r-- | users/wpcarro/boilerplate/elm/src/Landing.elm | 13 | ||||
-rw-r--r-- | users/wpcarro/boilerplate/elm/src/Login.elm | 13 | ||||
-rw-r--r-- | users/wpcarro/boilerplate/elm/src/Main.elm | 31 | ||||
-rw-r--r-- | users/wpcarro/boilerplate/elm/src/State.elm | 43 |
4 files changed, 100 insertions, 0 deletions
diff --git a/users/wpcarro/boilerplate/elm/src/Landing.elm b/users/wpcarro/boilerplate/elm/src/Landing.elm new file mode 100644 index 000000000000..00bb9e281af4 --- /dev/null +++ b/users/wpcarro/boilerplate/elm/src/Landing.elm @@ -0,0 +1,13 @@ +module Landing exposing (render) + +import Html exposing (..) +import Html.Attributes exposing (..) +import Html.Events exposing (..) +import State + + +render : State.Model -> Html State.Msg +render model = + div [ class "pt-10 pb-20 px-10" ] + [ p [] [ text "Welcome to the landing page!" ] + ] diff --git a/users/wpcarro/boilerplate/elm/src/Login.elm b/users/wpcarro/boilerplate/elm/src/Login.elm new file mode 100644 index 000000000000..27f1d811a89a --- /dev/null +++ b/users/wpcarro/boilerplate/elm/src/Login.elm @@ -0,0 +1,13 @@ +module Login exposing (render) + +import Html exposing (..) +import Html.Attributes exposing (..) +import Html.Events exposing (..) +import State + + +render : State.Model -> Html State.Msg +render model = + div [ class "pt-10 pb-20 px-10" ] + [ p [] [ text "Please authenticate" ] + ] diff --git a/users/wpcarro/boilerplate/elm/src/Main.elm b/users/wpcarro/boilerplate/elm/src/Main.elm new file mode 100644 index 000000000000..30006460cde9 --- /dev/null +++ b/users/wpcarro/boilerplate/elm/src/Main.elm @@ -0,0 +1,31 @@ +module Main exposing (main) + +import Browser +import Html exposing (..) +import Landing +import Login +import State + + +subscriptions : State.Model -> Sub State.Msg +subscriptions model = + Sub.none + + +view : State.Model -> Html State.Msg +view model = + case model.view of + State.Landing -> + Landing.render model + + State.Login -> + Login.render model + + +main = + Browser.element + { init = \() -> ( State.init, Cmd.none ) + , subscriptions = subscriptions + , update = State.update + , view = view + } diff --git a/users/wpcarro/boilerplate/elm/src/State.elm b/users/wpcarro/boilerplate/elm/src/State.elm new file mode 100644 index 000000000000..c1edae8bb638 --- /dev/null +++ b/users/wpcarro/boilerplate/elm/src/State.elm @@ -0,0 +1,43 @@ +module State exposing (..) + + +type Msg + = DoNothing + | SetView View + + +type View + = Landing + | Login + + +type alias Model = + { isLoading : Bool + , view : View + } + + +{-| The initial state for the application. +-} +init : Model +init = + { isLoading = False + , view = Landing + } + + +{-| Now that we have state, we need a function to change the state. +-} +update : Msg -> Model -> ( Model, Cmd Msg ) +update msg model = + case msg of + DoNothing -> + ( model, Cmd.none ) + + SetView x -> + ( { model + | view = x + , isLoading = True + } + , Cmd.none + ) |