aboutsummaryrefslogtreecommitdiff
path: root/server/lib/Uplcg/Views.hs
blob: ef4bc0924376c61263e39d7d7ec53de635c81ae3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{-# LANGUAGE OverloadedStrings #-}
module Uplcg.Views
    ( RoomView (..)
    , rooms
    ) where

import           Data.Foldable               (for_)
import           Data.Text                   (Text)
import qualified Text.Blaze.Html5            as H
import qualified Text.Blaze.Html5.Attributes as A
import           Uplcg.BaseUrl               (BaseUrl)
import qualified Uplcg.BaseUrl               as BaseUrl

data RoomView = RoomView Text Int

rooms :: BaseUrl -> [RoomView] -> H.Html
rooms base rids = H.docTypeHtml $ do
    H.head $ do
        H.meta H.! A.charset "UTF-8"
        H.link H.! A.rel "stylesheet" H.! A.type_ "text/css"
            H.! A.href (H.toValue $ BaseUrl.render base <> "/assets/style.css")
    H.body $ do
        H.h1 "Rooms"
        H.ul $ for_ rids $ \(RoomView rid num) -> H.li $ do
            H.a H.! A.href (H.toValue $ BaseUrl.render base <> "/rooms/" <> rid) $
                H.toHtml rid
            " ("
            H.toHtml num
            ")"
        H.footer $ "Untitled PL Card Game"