{-# LANGUAGE OverloadedStrings #-} module View.Scaffold where import Servant.Links import qualified Text.Blaze.Html5 as H import qualified Text.Blaze.Html5.Attributes as HA import qualified Data.Text as T import Data.String (fromString) import Data.Text.I18n import Data.Maybe (fromJust, isJust) import Control.Monad (when) -- internal imports import Types.Page import API import Util scaffold :: L10n -> Locale -> Maybe T.Text -> Page H.Html T.Text -> H.Html -> H.Html scaffold l10n locale mcookie page content = template page $ do H.header $ H.nav $ H.ul $ H.li $ H.a H.! HA.href ("/" <> fromString (show $ linkURI userSelectLink)) $ H.toHtml $ localize l10n locale $ gettext "Home" H.hr when (isJust message) (H.div H.! HA.id "message" H.! HA.class_ "message" $ H.toHtml (fromJust message) ) H.div H.! HA.id "main" H.! HA.role "main" $ content where message = lookup "message" =<< fmap parseCookieText mcookie