aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Income/Add.hs
diff options
context:
space:
mode:
authorJoris2019-10-22 23:25:05 +0200
committerJoris2019-10-22 23:25:05 +0200
commit61ff1443c42def5a09f624e3df2e2520e97610d0 (patch)
treea177b297b2c0728c8edaaf200f05c53e76f121f3 /client/src/View/Income/Add.hs
parent613ffccac4b3ab25c6d4c631fab757da0b35acf6 (diff)
downloadbudget-61ff1443c42def5a09f624e3df2e2520e97610d0.tar.gz
budget-61ff1443c42def5a09f624e3df2e2520e97610d0.tar.bz2
budget-61ff1443c42def5a09f624e3df2e2520e97610d0.zip
Clone incomes
Diffstat (limited to 'client/src/View/Income/Add.hs')
-rw-r--r--client/src/View/Income/Add.hs20
1 files changed, 14 insertions, 6 deletions
diff --git a/client/src/View/Income/Add.hs b/client/src/View/Income/Add.hs
index f8f107f..d07bd45 100644
--- a/client/src/View/Income/Add.hs
+++ b/client/src/View/Income/Add.hs
@@ -1,13 +1,16 @@
module View.Income.Add
( view
+ , In(..)
) where
import Control.Monad.IO.Class (liftIO)
+import qualified Data.Maybe as Maybe
+import qualified Data.Text as T
import qualified Data.Time.Clock as Time
-import Reflex.Dom (MonadWidget)
+import Reflex.Dom (Dynamic, MonadWidget)
import qualified Reflex.Dom as R
-import Common.Model (CreateIncomeForm (..), Income)
+import Common.Model (CreateIncomeForm (..), Income (..))
import qualified Common.Msg as Msg
import qualified Common.Util.Time as TimeUtil
import qualified Component.Modal as Modal
@@ -15,16 +18,21 @@ import qualified Util.Ajax as Ajax
import qualified Util.Reflex as ReflexUtil
import qualified View.Income.Form as Form
-view :: forall t m. MonadWidget t m => Modal.Content t m Income
-view cancel = do
+data In t = In
+ { _in_income :: Dynamic t (Maybe Income)
+ }
+
+view :: forall t m. MonadWidget t m => In t -> Modal.Content t m Income
+view input cancel = do
currentDay <- liftIO $ Time.getCurrentTime >>= TimeUtil.timeToDay
- form <- R.dyn $
+ form <- R.dyn $ do
+ income <- _in_income input
return $ Form.view $ Form.In
{ Form._in_cancel = cancel
, Form._in_headerLabel = Msg.get Msg.Income_AddLong
- , Form._in_amount = ""
+ , Form._in_amount = Maybe.fromMaybe "" ((T.pack . show . _income_amount) <$> income)
, Form._in_date = currentDay
, Form._in_mkPayload = CreateIncomeForm
, Form._in_ajax = Ajax.post