module Web.Routes.Nested.FileExtListener.Lucid where
import Web.Routes.Nested.FileExtListener.Types
import Web.Routes.Nested.FileExtListener.ByteString
import Data.Map
import qualified Lucid.Base as L
import Network.HTTP.Types (RequestHeaders,
Status, status200)
import Network.Wai
import Control.Monad.Writer
lucid :: Monad m =>
L.HtmlT m () -> FileExtListenerT Response m ()
lucid = lucidStatusHeaders status200 [("Content-Type", "text/html")]
lucidStatus :: Monad m =>
Status -> L.HtmlT m () -> FileExtListenerT Response m ()
lucidStatus s = lucidStatusHeaders s [("Content-Type", "text/html")]
lucidHeaders :: Monad m =>
RequestHeaders -> L.HtmlT m () -> FileExtListenerT Response m ()
lucidHeaders = lucidStatusHeaders status200
lucidStatusHeaders :: Monad m =>
Status -> RequestHeaders -> L.HtmlT m () -> FileExtListenerT Response m ()
lucidStatusHeaders s hs i = do
r <- lift $ lucidOnlyStatusHeaders s hs i
FileExtListenerT $ tell $
FileExts $ singleton Html r
lucidOnly :: Monad m =>
L.HtmlT m () -> m Response
lucidOnly = lucidOnlyStatusHeaders status200 [("Content-Type", "text/html")]
lucidOnlyStatus :: Monad m =>
Status -> L.HtmlT m () -> m Response
lucidOnlyStatus s = lucidOnlyStatusHeaders s [("Content-Type", "text/html")]
lucidOnlyHeaders :: Monad m =>
RequestHeaders -> L.HtmlT m () -> m Response
lucidOnlyHeaders = lucidOnlyStatusHeaders status200
lucidOnlyStatusHeaders :: Monad m =>
Status -> RequestHeaders -> L.HtmlT m () -> m Response
lucidOnlyStatusHeaders s hs i = liftM (bytestringOnlyStatus s hs) $ L.renderBST i