[Haskell-cafe] How to deal with HTML input select option on a form using in a scotty and Text.Blaze.Html5
Tebogo Sikwane
tebogos at gmail.com
Thu Feb 27 03:57:00 UTC 2020
I am using scotty
and Text.Blaze.Html5 Text.Digestive Text.Digestive.Blaze.Html5
What I want to achieve is a list of options as shown below.
I have a Option sum type and will like to restrict the user to those
options.
data Options = Option1 | Option2 | Option3 | Option4 deriving Show
Below is the Register record typeY
data Register = Register
{ regName::Text
, regOption::Options
} deriving (Show,Eq)
My problem is with Text.Digestive.choice.
I don't know how to use it with Text.Digestive.Blaze.Html5 and will
appreciate your help on the correct way to achieve this.
I have tried to use the code below but battle to get it right.
registerForm :: Monad m => Form Text m Register
registerForm = Register
<$> "name" .: text Nothing
<*> "options" .: choice options Nothing
where
options= [(Option1,"Option1"),(Option2,"Option2"), (Option3,
"Option3"),Option4,"Option4"]
registerView:: View H.Html -> H.Html
registerView view = do
label "name" view "Name: "
inputText "name" view
H.br
label "options" view "Options: "
inputSelect "options" view
H.br
I get the following error when I compile my code:
/root/work/src/Adapter/HTTP/Web/Auth.hs:107:29: error:
• Couldn't match type ‘Text’ with ‘Char’
arising from the literal ‘"Option1"’
• In the first argument of ‘pack’, namely ‘"Option1"’
In the expression: pack "Option1"
In the expression: (Option1, pack "Option1")
|
107 | options= [(Option1,pack "Option1"),(Option2,pack
"Option2"),(Option3,pack "Option3"),(Option4,pack "Option4")]
Your help will be highly appreciated.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20200227/f71b5204/attachment.html>
More information about the Haskell-Cafe
mailing list