aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Payment/Header.hs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/View/Payment/Header.hs')
-rw-r--r--client/src/View/Payment/Header.hs96
1 files changed, 47 insertions, 49 deletions
diff --git a/client/src/View/Payment/Header.hs b/client/src/View/Payment/Header.hs
index 9ad90a9..00987a3 100644
--- a/client/src/View/Payment/Header.hs
+++ b/client/src/View/Payment/Header.hs
@@ -1,7 +1,7 @@
module View.Payment.Header
- ( widget
- , HeaderIn(..)
- , HeaderOut(..)
+ ( view
+ , In(..)
+ , Out(..)
) where
import Control.Monad (forM_)
@@ -27,31 +27,30 @@ import qualified Common.Model as CM
import qualified Common.Msg as Msg
import qualified Common.View.Format as Format
-import Component (ButtonIn (..), ButtonOut (..),
- InputIn (..), InputOut (..),
- SelectIn (..), SelectOut (..))
-import qualified Component as Component
+import qualified Component.Button as Button
+import qualified Component.Input as Input
import qualified Component.Modal as Modal
+import qualified Component.Select as Select
import qualified Util.List as L
import qualified View.Payment.Add as Add
import View.Payment.Init (Init (..))
-data HeaderIn t = HeaderIn
- { _headerIn_init :: Init
- , _headerIn_currency :: Currency
- , _headerIn_payments :: Dynamic t [Payment]
- , _headerIn_searchPayments :: Dynamic t [Payment]
- , _headerIn_paymentCategories :: Dynamic t [PaymentCategory]
+data In t = In
+ { _in_init :: Init
+ , _in_currency :: Currency
+ , _in_payments :: Dynamic t [Payment]
+ , _in_searchPayments :: Dynamic t [Payment]
+ , _in_paymentCategories :: Dynamic t [PaymentCategory]
}
-data HeaderOut t = HeaderOut
- { _headerOut_searchName :: Dynamic t Text
- , _headerOut_searchFrequency :: Dynamic t Frequency
- , _headerOut_addPayment :: Event t SavedPayment
+data Out t = Out
+ { _out_searchName :: Dynamic t Text
+ , _out_searchFrequency :: Dynamic t Frequency
+ , _out_addPayment :: Event t SavedPayment
}
-widget :: forall t m. MonadWidget t m => HeaderIn t -> m (HeaderOut t)
-widget headerIn =
+view :: forall t m. MonadWidget t m => In t -> m (Out t)
+view input =
R.divClass "header" $ do
rec
addPayment <-
@@ -66,22 +65,22 @@ widget headerIn =
let resetSearchName = fmap (const ()) $ addPayment
(searchName, searchFrequency) <- searchLine resetSearchName
- infos (_headerIn_searchPayments headerIn) users currency
+ infos (_in_searchPayments input) users currency
- return $ HeaderOut
- { _headerOut_searchName = searchName
- , _headerOut_searchFrequency = searchFrequency
- , _headerOut_addPayment = addPayment
+ return $ Out
+ { _out_searchName = searchName
+ , _out_searchFrequency = searchFrequency
+ , _out_addPayment = addPayment
}
where
- init = _headerIn_init headerIn
+ init = _in_init input
incomes = _init_incomes init
initPayments = _init_payments init
- payments = _headerIn_payments headerIn
+ payments = _in_payments input
users = _init_users init
categories = _init_categories init
- currency = _headerIn_currency headerIn
- paymentCategories = _headerIn_paymentCategories headerIn
+ currency = _in_currency input
+ paymentCategories = _in_paymentCategories input
payerAndAdd
:: forall t m. MonadWidget t m
@@ -113,18 +112,18 @@ payerAndAdd incomes payments users categories paymentCategories currency frequen
R.dynText . R.ffor exceedingPayer $ \ep ->
Format.price currency $ _exceedingPayer_amount ep
- addPayment <- _buttonOut_clic <$>
- (Component.button $
- (Component.defaultButtonIn (R.text $ Msg.get Msg.Payment_Add))
- { _buttonIn_class = R.constDyn "addPayment"
+ addPayment <- Button._out_clic <$>
+ (Button.view $
+ (Button.defaultIn (R.text $ Msg.get Msg.Payment_Add))
+ { Button._in_class = R.constDyn "addPayment"
})
- Modal.view $ Modal.Input
- { Modal._input_show = addPayment
- , Modal._input_content = Add.view $ Add.Input
- { Add._input_categories = categories
- , Add._input_paymentCategories = paymentCategories
- , Add._input_frequency = frequency
+ Modal.view $ Modal.In
+ { Modal._in_show = addPayment
+ , Modal._in_content = Add.view $ Add.In
+ { Add._in_categories = categories
+ , Add._in_paymentCategories = paymentCategories
+ , Add._in_frequency = frequency
}
}
@@ -134,8 +133,8 @@ searchLine
-> m (Dynamic t Text, Dynamic t Frequency)
searchLine reset = do
R.divClass "searchLine" $ do
- searchName <- _inputOut_raw <$> (Component.input
- ( Component.defaultInputIn { _inputIn_label = Msg.get Msg.Search_Name })
+ searchName <- Input._out_raw <$> (Input.view
+ ( Input.defaultIn { Input._in_label = Msg.get Msg.Search_Name })
("" <$ reset)
R.never)
@@ -144,15 +143,14 @@ searchLine reset = do
, (Monthly, Msg.get Msg.Payment_MonthlyMale)
]
- searchFrequency <- _selectOut_raw <$> (Component.select $
- SelectIn
- { _selectIn_label = ""
- , _selectIn_initialValue = Punctual
- , _selectIn_value = R.never
- , _selectIn_values = R.constDyn frequencies
- , _selectIn_reset = R.never
- , _selectIn_isValid = V.Success
- , _selectIn_validate = R.never
+ searchFrequency <- Select._out_raw <$> (Select.view $ Select.In
+ { Select._in_label = ""
+ , Select._in_initialValue = Punctual
+ , Select._in_value = R.never
+ , Select._in_values = R.constDyn frequencies
+ , Select._in_reset = R.never
+ , Select._in_isValid = V.Success
+ , Select._in_validate = R.never
})
return (searchName, searchFrequency)