ref: web: refactor toBloodhoundJson for Data.Text
This has the advantage of there being no extra unpacking/packing of Data.Text to/from strings where it isn't necessary.
This commit is contained in:
parent
9ce55146c8
commit
3504a91b42
@ -13,14 +13,14 @@ module Hledger.Web.Widget.AddForm
|
|||||||
import Control.Monad.State.Strict (evalStateT)
|
import Control.Monad.State.Strict (evalStateT)
|
||||||
import Data.Bifunctor (first)
|
import Data.Bifunctor (first)
|
||||||
import Data.Foldable (toList)
|
import Data.Foldable (toList)
|
||||||
import Data.List (dropWhileEnd, intercalate, unfoldr)
|
import Data.List (dropWhileEnd, unfoldr)
|
||||||
import Data.Maybe (isJust)
|
import Data.Maybe (isJust)
|
||||||
import qualified Data.Set as S
|
import qualified Data.Set as S
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Data.Text.Encoding.Base64 (encodeBase64)
|
import Data.Text.Encoding.Base64 (encodeBase64)
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import Data.Time (Day)
|
import Data.Time (Day)
|
||||||
import Text.Blaze.Internal (Markup, preEscapedString)
|
import Text.Blaze.Internal (Markup, preEscapedText)
|
||||||
import Text.Megaparsec (bundleErrors, eof, parseErrorTextPretty, runParser)
|
import Text.Megaparsec (bundleErrors, eof, parseErrorTextPretty, runParser)
|
||||||
import Yesod
|
import Yesod
|
||||||
|
|
||||||
@ -91,11 +91,11 @@ addForm j today = identifyForm "add" $ \extra -> do
|
|||||||
-- This used to work, but since 1.16, it seems like something changed.
|
-- This used to work, but since 1.16, it seems like something changed.
|
||||||
-- toJSON ("a"::Text) gives String "a" instead of "a", etc.
|
-- toJSON ("a"::Text) gives String "a" instead of "a", etc.
|
||||||
-- preEscapedString . escapeJSSpecialChars . show . toJSON
|
-- preEscapedString . escapeJSSpecialChars . show . toJSON
|
||||||
preEscapedString $ concat [
|
preEscapedText $ T.concat [
|
||||||
"[",
|
"[",
|
||||||
intercalate "," $ map (
|
T.intercalate "," $ map (
|
||||||
("{\"value\":" ++).
|
("{\"value\":" <>).
|
||||||
(++"}").
|
(<> "}").
|
||||||
-- This will convert a value such as ``hledger!`` into
|
-- This will convert a value such as ``hledger!`` into
|
||||||
-- ``atob("aGxlZGdlciE=")``. When this gets evaluated on the client,
|
-- ``atob("aGxlZGdlciE=")``. When this gets evaluated on the client,
|
||||||
-- the resulting string is ``hledger!`` again. The same data is
|
-- the resulting string is ``hledger!`` again. The same data is
|
||||||
@ -107,8 +107,8 @@ addForm j today = identifyForm "add" $ \extra -> do
|
|||||||
"]"
|
"]"
|
||||||
]
|
]
|
||||||
where
|
where
|
||||||
b64wrap :: Text -> String
|
b64wrap :: Text -> Text
|
||||||
b64wrap = ("atob(\""++) . (++"\")") . T.unpack . encodeBase64
|
b64wrap = ("atob(\""<>) . (<>"\")") . encodeBase64
|
||||||
|
|
||||||
validateTransaction ::
|
validateTransaction ::
|
||||||
FormResult Day
|
FormResult Day
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user