{-# LANGUAGE NoImplicitPrelude #-}
module Bamboo.Theme.MiniHTML5.Widget.Helper where

import Bamboo.Theme.MiniHTML5.Env hiding (link, p)
  
import qualified Bamboo.Model.Tag as Tag
import qualified Bamboo.Type as C
import qualified Bamboo.Type.State as State
import MPS
import Data.Maybe

rss_url_link_pair :: State.State -> (String, MoeUnit)
rss_url_link_pair s = 
  if tagged 
  then link ( s.config.tag_id / tag_name) tag_name
  else link "" home_nav
  where
    tag_name = Tag.get_name uid
    uid      = State.uid s
    tagged   = uid.match "^tag/.+" .isJust
    url r    = s.env.slashed_script_name / r / "rss.xml"
    link r x = (url r, a [href r, _class "feed"] - div [_class "feedlink"] - str x)

tag_link :: State -> String -> MoeUnit
tag_link s x = a [href - s.env.slashed_script_name / s.config.tag_id / x ] - str x

nav :: Pager -> String -> MoeUnit
nav p r = nav' - do
  nav_previous
  nav_next

  where
    r' = if r.ends_with "&" then r else r ++ "?"
    space_html = str " "

    nav_previous = 
      if p.has_previous 
      then
        a [_class "previous", href - r' ++ "page=" ++ p.previous.show] - 
          str "« Next Entries"
      else space_html
    
    nav_next = 
      if p.has_next
      then
        a [_class "next", href - r' ++ "page=" ++ p.next.show] - 
          str "Previous Entries »"
      else space_html