Rename more stuff
This commit is contained in:
72
advanced/part1/src/Article/Preview.elm
Normal file
72
advanced/part1/src/Article/Preview.elm
Normal file
@@ -0,0 +1,72 @@
|
||||
module Article.Preview exposing (view)
|
||||
|
||||
{-| A preview of an individual article, excluding its body.
|
||||
-}
|
||||
|
||||
import Article exposing (Article)
|
||||
import Author
|
||||
import Avatar exposing (Avatar)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (attribute, class, classList, href, id, placeholder, src)
|
||||
import Profile
|
||||
import Route exposing (Route)
|
||||
import Time
|
||||
import Timestamp
|
||||
import Viewer.Cred exposing (Cred)
|
||||
|
||||
|
||||
|
||||
-- VIEW
|
||||
|
||||
|
||||
view : Maybe { cred : Cred, favorite : msg, unfavorite : msg } -> Time.Zone -> Article a -> Html msg
|
||||
view config timeZone article =
|
||||
let
|
||||
{ title, description, createdAt } =
|
||||
Article.metadata article
|
||||
|
||||
author =
|
||||
Article.author article
|
||||
|
||||
profile =
|
||||
Author.profile author
|
||||
|
||||
username =
|
||||
Author.username author
|
||||
|
||||
faveButton =
|
||||
case config of
|
||||
Just { favorite, unfavorite, cred } ->
|
||||
let
|
||||
{ favoritesCount, favorited } =
|
||||
Article.metadata article
|
||||
|
||||
viewButton =
|
||||
if favorited then
|
||||
Article.unfavoriteButton cred unfavorite
|
||||
|
||||
else
|
||||
Article.favoriteButton cred favorite
|
||||
in
|
||||
viewButton [ class "pull-xs-right" ]
|
||||
[ text (" " ++ String.fromInt favoritesCount) ]
|
||||
|
||||
Nothing ->
|
||||
text ""
|
||||
in
|
||||
div [ class "article-preview" ]
|
||||
[ div [ class "article-meta" ]
|
||||
[ a [ Route.href (Route.Profile username) ]
|
||||
[ img [ Avatar.src (Profile.avatar profile) ] [] ]
|
||||
, div [ class "info" ]
|
||||
[ Author.view username
|
||||
, Timestamp.view timeZone createdAt
|
||||
]
|
||||
, faveButton
|
||||
]
|
||||
, a [ class "preview-link", Route.href (Route.Article (Article.slug article)) ]
|
||||
[ h1 [] [ text title ]
|
||||
, p [] [ text description ]
|
||||
, span [] [ text "Read more..." ]
|
||||
]
|
||||
]
|
||||
Reference in New Issue
Block a user