{-# language OverloadedStrings #-} module Trasa.Form.Lucid where import Control.Monad.Except import Data.Text (Text) import Ditto.Core hiding (view) import Ditto.Lucid import Ditto.Result import Lucid import Trasa.Form import Trasa.Server import Trasa.Url import qualified Data.ByteString as BS queryParamReformGET :: (MonadIO m, Show b, Applicative f) => Text -> Form (TrasaT m) QueryParam err (HtmlT f ()) b -> TrasaT m (Result err b, HtmlT f ()) queryParamReformGET action = reformQP (formGenGET' action) "reform" simpleReformGET :: (MonadIO m, Show b, Applicative f) => Text -> Form (TrasaT m) Text err (HtmlT f ()) b -> TrasaT m (Result err b, HtmlT f ()) simpleReformGET action form = reform (formGenGET' action) "reform" form queryParamReformPOST :: (MonadIO m, Show b, Applicative f) => Text -> BS.ByteString -> Form (TrasaT m) QueryParam err (HtmlT f ()) b -> TrasaT m (Result err b, HtmlT f ()) queryParamReformPOST action reqBody form = reformPost (formGenPOST' action) "reform" reqBody form formGenGET' :: Applicative f => Text -> [(Text, Text)] -> HtmlT f b -> HtmlT f b formGenGET' url = formGenGET url formGenPOST' :: Applicative f => Text -> [(Text, Text)] -> HtmlT f b -> HtmlT f b formGenPOST' url = formGenPOST url