{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE OverloadedStrings #-} module Yesod.Paginator.Widget ( getCurrentPage , paginationWidget ) where import Yesod import Control.Monad (when) import Data.Maybe (fromMaybe) import Data.Text (Text) import qualified Data.Text as T -- | Individual links to pages need to follow strict (but sane) markup -- to be styled correctly by bootstrap. This type allows construction -- of such links in both enabled and disabled states. data PageLink = Enabled Int String String -- ^ page, content, class | Disabled String String -- ^ content, class -- | Correctly show one of the constructed links showLink :: [(Text, Text)] -> PageLink -> GWidget s m () showLink params (Enabled pg cnt cls) = do let param = ("p", T.pack . show $ pg) [whamlet|