{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TemplateHaskell #-} module Hledger.Web.Widget.AddForm ( addForm , addModal ) where import Control.Monad.State.Strict (evalStateT) import Data.Bifunctor (first) import Data.Foldable (toList) import Data.List (dropWhileEnd, unfoldr) import Data.Maybe (isJust) import qualified Data.Set as S import Data.Text (Text) import Data.Text.Encoding.Base64 (encodeBase64) import qualified Data.Text as T import Data.Time (Day) import Text.Blaze.Internal (Markup, preEscapedText) import Text.Megaparsec (bundleErrors, eof, parseErrorTextPretty, runParser) import Yesod import Hledger import Hledger.Web.Foundation -- (App, Form, Handler, Widget) import Hledger.Web.Settings (widgetFile) -- addModal :: -- ( MonadWidget m -- , r ~ Route (HandlerSite m) -- , m ~ WidgetFor (HandlerSite m) -- , RenderMessage (HandlerSite m) FormMessage -- ) -- => r -> Journal -> Day -> m () addModal :: Route App -> Journal -> Day -> Widget addModal addR j today = do (addView, addEnctype) <- generateFormPost (addForm j today) [whamlet|