-- | 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 }