Remove part13
This commit is contained in:
126
part13/Main.elm
126
part13/Main.elm
@@ -1,126 +0,0 @@
|
||||
module Main exposing (..)
|
||||
|
||||
import Page.Home
|
||||
import Page.Repository
|
||||
import Navigation
|
||||
import Page exposing (Page(..))
|
||||
import Tuple2
|
||||
import Html exposing (Html, div, h1, header, text, span)
|
||||
import Html.Attributes exposing (class)
|
||||
import Html.App as Html
|
||||
|
||||
|
||||
type Model
|
||||
= Home Page.Home.Model
|
||||
| Repository Page.Repository.Model
|
||||
| NotFound
|
||||
|
||||
|
||||
type Msg
|
||||
= HomeMsg Page.Home.Msg
|
||||
| RepositoryMsg Page.Repository.Msg
|
||||
|
||||
|
||||
main : Program Never
|
||||
main =
|
||||
Navigation.program (Navigation.makeParser Page.parser)
|
||||
{ init = init
|
||||
, subscriptions = subscriptions
|
||||
, view = view
|
||||
, update = update
|
||||
, urlUpdate = urlUpdate
|
||||
}
|
||||
|
||||
|
||||
subscriptions : Model -> Sub Msg
|
||||
subscriptions model =
|
||||
case model of
|
||||
Home pageModel ->
|
||||
Page.Home.subscriptions pageModel
|
||||
|> Sub.map HomeMsg
|
||||
|
||||
Repository pageModel ->
|
||||
-- Repository has no subscriptions, so there's nothing to translate!
|
||||
Sub.none
|
||||
|
||||
NotFound ->
|
||||
-- NotFound has no subscriptions, so there's nothing to translate!
|
||||
Sub.none
|
||||
|
||||
|
||||
init : Result String Page -> ( Model, Cmd Msg )
|
||||
init result =
|
||||
case result of
|
||||
Ok (Page.Home) ->
|
||||
Page.Home.init
|
||||
|> Tuple2.mapEach Home (Cmd.map HomeMsg)
|
||||
|
||||
Ok (Page.Repository repoOwner repoName) ->
|
||||
Page.Repository.init repoOwner repoName
|
||||
|> Tuple2.mapEach Repository (Cmd.map RepositoryMsg)
|
||||
|
||||
Ok (Page.NotFound) ->
|
||||
( NotFound, Cmd.none )
|
||||
|
||||
Err err ->
|
||||
( NotFound, Cmd.none )
|
||||
|
||||
|
||||
view : Model -> Html Msg
|
||||
view model =
|
||||
withHeader <|
|
||||
case model of
|
||||
Home pageModel ->
|
||||
Page.Home.view pageModel
|
||||
|> Html.map HomeMsg
|
||||
|
||||
Repository pageModel ->
|
||||
Page.Repository.view pageModel
|
||||
|> Html.map RepositoryMsg
|
||||
|
||||
NotFound ->
|
||||
h1 [] [ text "Page Not Found" ]
|
||||
|
||||
|
||||
withHeader : Html msg -> Html msg
|
||||
withHeader innerContent =
|
||||
div [ class "content" ]
|
||||
[ header []
|
||||
[ h1 [] [ text "ElmHub" ]
|
||||
, span [ class "tagline" ] [ text "Like GitHub, but for Elm things." ]
|
||||
]
|
||||
, innerContent
|
||||
]
|
||||
|
||||
|
||||
update : Msg -> Model -> ( Model, Cmd Msg )
|
||||
update msg model =
|
||||
case ( msg, model ) of
|
||||
( HomeMsg pageMsg, Home pageModel ) ->
|
||||
Page.Home.update pageMsg pageModel
|
||||
|> Tuple2.mapEach Home (Cmd.map HomeMsg)
|
||||
|
||||
( RepositoryMsg pageMsg, Repository pageModel ) ->
|
||||
Page.Repository.update pageMsg pageModel
|
||||
|> Tuple2.mapEach Repository (Cmd.map RepositoryMsg)
|
||||
|
||||
_ ->
|
||||
( model, Cmd.none )
|
||||
|
||||
|
||||
urlUpdate : Result String Page -> Model -> ( Model, Cmd Msg )
|
||||
urlUpdate result model =
|
||||
case result of
|
||||
Ok (Page.Home) ->
|
||||
Page.Home.init
|
||||
|> Tuple2.mapEach Home (Cmd.map HomeMsg)
|
||||
|
||||
Ok (Page.Repository repoOwner repoName) ->
|
||||
Page.Repository.init repoOwner repoName
|
||||
|> Tuple2.mapEach Repository (Cmd.map RepositoryMsg)
|
||||
|
||||
Ok (Page.NotFound) ->
|
||||
( NotFound, Cmd.none )
|
||||
|
||||
Err err ->
|
||||
( NotFound, Cmd.none )
|
||||
Reference in New Issue
Block a user