{-# LANGUAGE OverloadedStrings #-}

-- |
-- Module       : Web.Skell.Partials
-- Description  : These are little HTML snippets.
-- Copyright    : 2014, Peter Harpending.
-- License      : BSD3
-- Maintainer   : Peter Harpending <pharpend2@gmail.com>
-- Stability    : experimental
-- Portability  : archlinux
--

module Web.Skell.Partials where

import           Data.Monoid ((<>))
import qualified Data.Text.Lazy as L
import           Text.Blaze.Html5 ((!))
import qualified Text.Blaze.Html5 as H
import qualified Text.Blaze.Html5.Attributes as A
import           Web.Skell.Resources
import           Web.Skell.Saferoute

defaultWrapper :: H.Html -> H.Html -> H.Html
defaultWrapper headers body = H.html $ do
  H.head $ do
    stylesheetTag BootstrapCss
    headers
  H.body $ do
    H.div ! A.class_ "container" $ do
      body
    H.script ! A.src (getUrl JQueryJs)    $ return ()
    H.script ! A.src (getUrl BootstrapJs) $ return ()

stylesheetTag :: Resource r => r -> H.Html
stylesheetTag res = H.link ! A.rel "stylesheet"
                           ! A.type_ "text/css"
                           ! A.href (getUrl res)
-- |Tag for any link
linkTag :: H.AttributeValue -> H.Html -> H.Html
linkTag hrf txt = H.a ! A.href hrf $ do txt

-- |Email tag for any email
emailTag :: L.Text -> H.Html
emailTag email = H.code $ H.span ! A.class_ "email" $ H.toHtml $
  "<" <> L.reverse email <> ">"