Reorganize stages into parts

This commit is contained in:
Richard Feldman
2016-04-02 07:08:08 -07:00
parent 05f1716c43
commit beb283b9ff
108 changed files with 14 additions and 2 deletions

102
part3/Main.elm Normal file
View File

@@ -0,0 +1,102 @@
module Main (..) where
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import StartApp.Simple as StartApp
import Signal exposing (Address)
type alias Model =
{ query : String
, results : List SearchResult
}
type alias SearchResult =
{ id : ResultId
, name : String
, stars : Int
}
type alias ResultId =
Int
initialModel : Model
initialModel =
{ query = "tutorial"
, results =
[ { id = 1
, name = "TheSeamau5/elm-checkerboardgrid-tutorial"
, stars = 66
}
, { id = 2
, name = "grzegorzbalcerek/elm-by-example"
, stars = 41
}
, { id = 3
, name = "sporto/elm-tutorial-app"
, stars = 35
}
, { id = 4
, name = "jvoigtlaender/Elm-Tutorium"
, stars = 10
}
, { id = 5
, name = "sporto/elm-tutorial-assets"
, stars = 7
}
]
}
view : Address Action -> Model -> Html
view address model =
div
[ class "content" ]
[ header
[]
[ h1 [] [ text "ElmHub" ]
, span [ class "tagline" ] [ text "Like GitHub, but for Elm things." ]
]
, ul
[ class "results" ]
(List.map (viewSearchResult address) model.results)
]
viewSearchResult : Address Action -> SearchResult -> Html
viewSearchResult address result =
li
[]
[ span [ class "star-count" ] [ text (toString result.stars) ]
, a
[ href ("https://github.com/" ++ result.name), target "_blank" ]
[ text result.name ]
, button
-- TODO add an onClick handler that sends a DELETE_BY_ID action
[ class "hide-result" ]
[ text "X" ]
]
type alias Action =
{ -- TODO implement this type alias
}
update : Action -> Model -> Model
update action model =
-- TODO if we receive a DELETE_BY_ID action,
-- build a new model without the given ID present anymore.
model
main =
StartApp.start
{ view = view
, update = update
, model = initialModel
}