{-# LANGUAGE NoMonomorphismRestriction#-}
{-# LANGUAGE NoImplicitPrelude #-}
module Panda.View.Widget.Template (page) where

import Panda.View.Widget.Head
import Panda.View.Widget.Body
import Panda.View.Widget.Header
import Panda.View.Widget.Navigation
import Panda.View.Widget.Sidebar
import Panda.View.Widget.Footer
import qualified Text.XHtml.Strict as Html
import qualified Panda.Config.Global as G
import qualified Panda.Type.Theme as T

import Panda.Helper.Env hiding (header, body)

-- extension
import Panda.Type.Extension
import Panda.Helper.StateHelper
import HCheat

body t state x = Html.body << 
  [ div_class (t.T.container) << 
    [ header (t.T.header)
    , navigation (t.T.navigation) state
    , div_id "page" << [ div_class (t.T.main) << body_content x, sidebar (t.T.sidebar) state ]
    , footer (t.T.footer)
    ]
  , only_for Analytics $ primHtml (analytics G.analytics_account_id)
  ]

template t state x = [html_head state, body t state x]

page = template G.theme