26 lines
994 B
Haskell
26 lines
994 B
Haskell
{-# LANGUAGE OverloadedStrings #-}
|
|
|
|
module Within.DBMemorial.Views.Thread where
|
|
|
|
import Control.Monad (forM_)
|
|
import Data.Map (Map)
|
|
import qualified Data.Map as Map
|
|
import Data.Text (Text)
|
|
import Text.Blaze.Html
|
|
import Text.Blaze.Html5 as H hiding (map)
|
|
import Text.Blaze.Html5.Attributes as A
|
|
import qualified Within.DBMemorial.Post as Post
|
|
import qualified Within.DBMemorial.User as User
|
|
|
|
render :: Int -> [Post.Post] -> (Map Text User.User) -> Html
|
|
render pageNumber posts users = do
|
|
H.h1 ! A.class_ "center text-orange" $ H.toHtml ("Page " ++ (show pageNumber))
|
|
|
|
H.div ! A.class_ "row" $ do
|
|
forM_ posts $ \post -> do
|
|
let user = case (Post.author post) `Map.lookup` users of
|
|
Just u -> u
|
|
Nothing -> error "Can't find user? Impossible state."
|
|
|
|
Post.render post (User.render user)
|