{-# LANGUAGE OverloadedStrings #-} module Snap.Extras ( module Snap.Extras.CoreUtils , module Snap.Extras.TextUtils , module Snap.Extras.JSON , module Snap.Extras.FlashNotice , module Snap.Extras.SpliceUtils , module Snap.Extras.FormUtils , module Snap.Extras.Tabs , initExtras ) where ------------------------------------------------------------------------------- import Data.Lens.Common import Snap.Snaplet import Snap.Snaplet.Heist import Snap.Snaplet.Session import System.FilePath.Posix ------------------------------------------------------------------------------- import Snap.Extras.CoreUtils import Snap.Extras.FlashNotice import Snap.Extras.FormUtils import Snap.Extras.JSON import Snap.Extras.SpliceUtils import Snap.Extras.Tabs import Snap.Extras.TextUtils ------------------------------------------------------------------------------- import Paths_snap_extras ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -- | Initialize all the 'Snap.Extras' functionality in your Snap app. -- Currently, we don't need to keep any state and simply return (). initExtras :: HasHeist b => Lens b (Snaplet SessionManager) -> SnapletInit b () initExtras session = makeSnaplet "Snap Extras" "Collection of utilities for web applications" (Just getDataDir) $ do addTemplatesAt "" . ( "resources/templates") =<< getSnapletFilePath initFlashNotice session addUtilSplices initTabs