aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Income/Form.hs
diff options
context:
space:
mode:
authorJoris2019-10-22 22:26:38 +0200
committerJoris2019-10-22 22:26:38 +0200
commit613ffccac4b3ab25c6d4c631fab757da0b35acf6 (patch)
tree13e448af89f4079bb62d7ce8b5a44b6a64515129 /client/src/View/Income/Form.hs
parent80f09e8b3a5c856e60922a73c9161a8c5392e4d4 (diff)
downloadbudget-613ffccac4b3ab25c6d4c631fab757da0b35acf6.tar.gz
budget-613ffccac4b3ab25c6d4c631fab757da0b35acf6.tar.bz2
budget-613ffccac4b3ab25c6d4c631fab757da0b35acf6.zip
Harmonize view component code style
Diffstat (limited to 'client/src/View/Income/Form.hs')
-rw-r--r--client/src/View/Income/Form.hs83
1 files changed, 41 insertions, 42 deletions
diff --git a/client/src/View/Income/Form.hs b/client/src/View/Income/Form.hs
index 824bb0a..917edf1 100644
--- a/client/src/View/Income/Form.hs
+++ b/client/src/View/Income/Form.hs
@@ -1,7 +1,7 @@
module View.Income.Form
( view
- , FormIn(..)
- , FormOut(..)
+ , In(..)
+ , Out(..)
) where
import Data.Aeson (FromJSON, ToJSON)
@@ -17,42 +17,41 @@ import qualified Reflex.Dom as R
import Common.Model (Income)
import qualified Common.Msg as Msg
import qualified Common.Validation.Income as IncomeValidation
-import Component (InputIn (..), InputOut (..),
- ModalFormIn (..), ModalFormOut (..))
-import qualified Component as Component
+import qualified Component.Input as Input
+import qualified Component.ModalForm as ModalForm
-data FormIn m t a = FormIn
- { _formIn_cancel :: Event t ()
- , _formIn_headerLabel :: Text
- , _formIn_amount :: Text
- , _formIn_date :: Day
- , _formIn_mkPayload :: Text -> Text -> a
- , _formIn_ajax :: Text -> Event t a -> m (Event t (Either Text Income))
+data In m t a = In
+ { _in_cancel :: Event t ()
+ , _in_headerLabel :: Text
+ , _in_amount :: Text
+ , _in_date :: Day
+ , _in_mkPayload :: Text -> Text -> a
+ , _in_ajax :: Text -> Event t a -> m (Event t (Either Text Income))
}
-data FormOut t = FormOut
- { _formOut_hide :: Event t ()
- , _formOut_addIncome :: Event t Income
+data Out t = Out
+ { _out_hide :: Event t ()
+ , _out_addIncome :: Event t Income
}
-view :: forall t m a. (MonadWidget t m, ToJSON a) => FormIn m t a -> m (FormOut t)
-view formIn = do
+view :: forall t m a. (MonadWidget t m, ToJSON a) => In m t a -> m (Out t)
+view input = do
rec
let reset = R.leftmost
- [ "" <$ _modalFormOut_cancel modalForm
- , "" <$ _modalFormOut_validate modalForm
- , "" <$ _formIn_cancel formIn
+ [ "" <$ ModalForm._out_cancel modalForm
+ , "" <$ ModalForm._out_validate modalForm
+ , "" <$ _in_cancel input
]
- modalForm <- Component.modalForm $ ModalFormIn
- { _modalFormIn_headerLabel = _formIn_headerLabel formIn
- , _modalFormIn_ajax = _formIn_ajax formIn "/api/income"
- , _modalFormIn_form = form reset (_modalFormOut_confirm modalForm)
+ modalForm <- ModalForm.view $ ModalForm.In
+ { ModalForm._in_headerLabel = _in_headerLabel input
+ , ModalForm._in_ajax = _in_ajax input "/api/income"
+ , ModalForm._in_form = form reset (ModalForm._out_confirm modalForm)
}
- return $ FormOut
- { _formOut_hide = _modalFormOut_hide modalForm
- , _formOut_addIncome = _modalFormOut_validate modalForm
+ return $ Out
+ { _out_hide = ModalForm._out_hide modalForm
+ , _out_addIncome = ModalForm._out_validate modalForm
}
where
@@ -61,24 +60,24 @@ view formIn = do
-> Event t ()
-> m (Dynamic t (Validation Text a))
form reset confirm = do
- amount <- _inputOut_raw <$> (Component.input
- (Component.defaultInputIn
- { _inputIn_label = Msg.get Msg.Income_Amount
- , _inputIn_initialValue = _formIn_amount formIn
- , _inputIn_validation = IncomeValidation.amount
+ amount <- Input._out_raw <$> (Input.view
+ (Input.defaultIn
+ { Input._in_label = Msg.get Msg.Income_Amount
+ , Input._in_initialValue = _in_amount input
+ , Input._in_validation = IncomeValidation.amount
})
- (_formIn_amount formIn <$ reset)
+ (_in_amount input <$ reset)
confirm)
- let initialDate = T.pack . Calendar.showGregorian . _formIn_date $ formIn
+ let initialDate = T.pack . Calendar.showGregorian . _in_date $ input
- date <- _inputOut_raw <$> (Component.input
- (Component.defaultInputIn
- { _inputIn_label = Msg.get Msg.Income_Date
- , _inputIn_initialValue = initialDate
- , _inputIn_inputType = "date"
- , _inputIn_hasResetButton = False
- , _inputIn_validation = IncomeValidation.date
+ date <- Input._out_raw <$> (Input.view
+ (Input.defaultIn
+ { Input._in_label = Msg.get Msg.Income_Date
+ , Input._in_initialValue = initialDate
+ , Input._in_inputType = "date"
+ , Input._in_hasResetButton = False
+ , Input._in_validation = IncomeValidation.date
})
(initialDate <$ reset)
confirm)
@@ -86,4 +85,4 @@ view formIn = do
return $ do
a <- amount
d <- date
- return . V.Success $ (_formIn_mkPayload formIn) a d
+ return . V.Success $ (_in_mkPayload input) a d