diff --git a/lib/Hikaru/Form.hs b/lib/Hikaru/Form.hs index 688301372279e9c32a2b4e37321077f780e21923..24e2ed100cfc18f51402741b9b1f15cb73730040 100644 --- a/lib/Hikaru/Form.hs +++ b/lib/Hikaru/Form.hs @@ -13,6 +13,7 @@ module Hikaru.Form , FormElement(..) , FormNote(..) , FormT + , Form , newForm , getForm , postForm @@ -94,6 +95,9 @@ where deriving (Functor, Applicative, Monad) + type Form l m a = Maybe a -> FormT l m (Maybe a) + + data Env = Env { envPrefix :: [Text] @@ -175,7 +179,7 @@ where inputField :: (Monad m, ToParam a, FromParam a) - => Text -> l -> Maybe a -> FormT l m (Maybe a) + => Text -> l -> Form l m a inputField name label orig = do fullName <- makeName name textValue <- formParamMaybe fullName @@ -193,7 +197,7 @@ where hiddenField :: (Monad m, ToParam a, FromParam a) - => Text -> Maybe a -> FormT l m (Maybe a) + => Text -> Form l m a hiddenField name orig = do fullName <- makeName name textValue <- formParamMaybe fullName @@ -208,7 +212,7 @@ where textField :: (Monad m, ToParam a, FromParam a) - => Text -> l -> Maybe a -> FormT l m (Maybe a) + => Text -> l -> Form l m a textField name label orig = do fullName <- makeName name textValue <- formParamMaybe fullName @@ -226,7 +230,7 @@ where selectField :: (Monad m, ToParam a, FromParam a, Eq a) - => Text -> l -> (a -> l) -> [a] -> Maybe a -> FormT l m (Maybe a) + => Text -> l -> (a -> l) -> [a] -> Form l m a selectField name label optlabel options orig = do fullName <- makeName name value <- formParamMaybe fullName