Update part8

This commit is contained in:
Richard Feldman
2018-05-05 07:17:06 -04:00
parent faa5b834c1
commit fecc3fe291
576 changed files with 14 additions and 44428 deletions

View File

@@ -0,0 +1,60 @@
module Views.Article exposing (view, viewTimestamp)
{-| Viewing a preview of an individual article, excluding its body.
-}
import Data.Article exposing (Article)
import Data.UserPhoto as UserPhoto exposing (UserPhoto)
import Date.Format
import Html exposing (..)
import Html.Attributes exposing (attribute, class, classList, href, id, placeholder, src)
import Route exposing (Route)
import Views.Article.Favorite as Favorite
import Views.Author
-- VIEWS --
{-| Some pages want to view just the timestamp, not the whole article.
-}
viewTimestamp : Article a -> Html msg
viewTimestamp article =
span [ class "date" ] [ text (formattedTimestamp article) ]
view : (Article a -> msg) -> Article a -> Html msg
view toggleFavorite article =
let
author =
article.author
in
div [ class "article-preview" ]
[ div [ class "article-meta" ]
[ a [ Route.href (Route.Profile author.username) ]
[ img [ UserPhoto.src author.image ] [] ]
, div [ class "info" ]
[ Views.Author.view author.username
, span [ class "date" ] [ text (formattedTimestamp article) ]
]
, Favorite.button
toggleFavorite
article
[ class "pull-xs-right" ]
[ text (" " ++ toString article.favoritesCount) ]
]
, a [ class "preview-link", Route.href (Route.Article article.slug) ]
[ h1 [] [ text article.title ]
, p [] [ text article.description ]
, span [] [ text "Read more..." ]
]
]
-- INTERNAL --
formattedTimestamp : Article a -> String
formattedTimestamp article =
Date.Format.format "%B %e, %Y" article.createdAt