simple-form-0.2: SimpleForm/Render.hs
-- | These utilities are for writing 'Renderer's
module SimpleForm.Render (
Renderer,
Input(..),
RenderOptions(..),
renderOptions
) where
import Text.Blaze.Html (Html)
import Data.Text (Text)
import SimpleForm
-- | The type of a final form-renderer
type Renderer = (RenderOptions -> Html)
-- | 'InputOptions' that have been prepped for rendering
data RenderOptions = RenderOptions {
name :: Text,
widgetHtml :: Input,
errors :: [Html],
options :: InputOptions
}
-- | Prep 'InputOptions' for rendering
renderOptions ::
Maybe a -- ^ The parsed value for this input (if available)
-> Maybe Text -- ^ The unparsed value for this input (if available)
-> Text -- ^ The name of this input
-> Widget a -- ^ Widget to render with
-> [Html] -- ^ Any error messages for this input
-> InputOptions
-> RenderOptions
renderOptions v u n w errors opt = RenderOptions {
name = n,
widgetHtml = w v u n opt,
errors = errors,
options = opt
}