aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Payment.hs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/View/Payment.hs')
-rw-r--r--client/src/View/Payment.hs26
1 files changed, 19 insertions, 7 deletions
diff --git a/client/src/View/Payment.hs b/client/src/View/Payment.hs
index 15892c4..8aa4d38 100644
--- a/client/src/View/Payment.hs
+++ b/client/src/View/Payment.hs
@@ -8,9 +8,10 @@ import Prelude hiding (init)
import Reflex.Dom (MonadWidget)
import qualified Reflex.Dom as R
-import Common.Model (Init (..))
+import Common.Model (Frequency (..), Init (..), Payment (..))
+import Common.Util.Text as T
-import View.Payment.Header (HeaderIn (..))
+import View.Payment.Header (HeaderIn (..), HeaderOut (..))
import qualified View.Payment.Header as Header
import View.Payment.Pages (PagesIn (..), PagesOut (..))
import qualified View.Payment.Pages as Pages
@@ -29,15 +30,26 @@ widget :: forall t m. MonadWidget t m => PaymentIn -> m PaymentOut
widget paymentIn = do
R.divClass "payment" $ do
rec
- _ <- Header.widget $ HeaderIn
+ let init = _paymentIn_init paymentIn
+
+ filterPayment s p = search s (_payment_name p) && (_payment_frequency p == Punctual)
+
+ payments = fmap
+ (\s -> filter (filterPayment s) (_init_payments init))
+ (_headerOut_search header)
+
+ header <- Header.widget $ HeaderIn
{ _headerIn_init = init
}
+
_ <- Table.widget $ TableIn
{ _tableIn_init = init
- , _tableIn_currentPage = _pagesOut_currentPage pagesOut
+ , _tableIn_currentPage = _pagesOut_currentPage pages
+ , _tableIn_payments = payments
}
- pagesOut <- Pages.widget $ PagesIn
- { _pagesIn_payments = _init_payments init
+
+ pages <- Pages.widget $ PagesIn
+ { _pagesIn_payments = payments
}
+
return $ PaymentOut {}
- where init = _paymentIn_init paymentIn