aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Payment/HeaderForm.hs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/View/Payment/HeaderForm.hs')
-rw-r--r--client/src/View/Payment/HeaderForm.hs69
1 files changed, 36 insertions, 33 deletions
diff --git a/client/src/View/Payment/HeaderForm.hs b/client/src/View/Payment/HeaderForm.hs
index 07a6b81..c8ca4d9 100644
--- a/client/src/View/Payment/HeaderForm.hs
+++ b/client/src/View/Payment/HeaderForm.hs
@@ -1,5 +1,7 @@
module View.Payment.HeaderForm
( view
+ , In(..)
+ , Out(..)
) where
import qualified Data.Map as M
@@ -8,10 +10,8 @@ import qualified Data.Validation as V
import Reflex.Dom (Dynamic, Event, MonadWidget)
import qualified Reflex.Dom as R
-import Common.Model (Category, Currency, ExceedingPayer (..),
- Frequency (..), Income (..), Payment (..),
- PaymentCategory, SavedPayment (..),
- User (..))
+import Common.Model (Category, Currency, Frequency (..),
+ Income (..), Payment (..), User (..))
import qualified Common.Msg as Msg
import qualified Component.Button as Button
@@ -21,39 +21,43 @@ import qualified Component.Select as Select
import qualified View.Payment.Form as Form
data In t = In
- { _in_reset :: Event t ()
- , _in_categories :: [Category]
- , _in_paymentCategories :: [PaymentCategory]
+ { _in_reset :: Event t ()
+ , _in_categories :: [Category]
}
-data Out = Out
- { _out_name :: Event t Text
+data Out t = Out
+ { _out_search :: Event t Text
, _out_frequency :: Event t Frequency
- , _out_addPayment :: Event t SavedPayment
+ , _out_addPayment :: Event t Payment
}
view :: forall t m. MonadWidget t m => In t -> m (Out t)
-view input = do
- R.divClass "g-HeaderForm" $ do
- searchName <- Input._out_raw <$> (Input.view
- ( Input.defaultIn { Input._in_label = Msg.get Msg.Search_Name })
- ("" <$ _in_reset input)
- R.never)
+view input =
+ R.divClass "g-PaymentHeaderForm" $ do
- let frequencies = M.fromList
- [ (Punctual, Msg.get Msg.Payment_PunctualMale)
- , (Monthly, Msg.get Msg.Payment_MonthlyMale)
- ]
+ (searchName, frequency) <- R.el "div" $ do
- 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
- })
+ searchName <- Input._out_raw <$> (Input.view
+ ( Input.defaultIn { Input._in_label = Msg.get Msg.Search_Name })
+ ("" <$ _in_reset input)
+ R.never)
+
+ let frequencies = M.fromList
+ [ (Punctual, Msg.get Msg.Payment_PunctualMale)
+ , (Monthly, Msg.get Msg.Payment_MonthlyMale)
+ ]
+
+ frequency <- 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, frequency)
addPaymentButton <- Button._out_clic <$>
(Button.view $
@@ -66,13 +70,12 @@ view input = do
, Modal._in_content =
Form.view $ Form.In
{ Form._in_categories = _in_categories input
- , Form._in_paymentCategories = _in_paymentCategories input
- , Form._in_operation = Form.New searchFrequency
+ , Form._in_operation = Form.New frequency
}
}
return $ Out
- { _out_name = searchName
- , _out_frequency = searchFrequency
+ { _out_search = R.updated searchName
+ , _out_frequency = R.updated frequency
, _out_addPayment = addPayment
}