{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecursiveDo #-} module View.Payment ( widget , PaymentIn(..) , PaymentOut(..) ) where import Reflex.Dom (MonadWidget) import qualified Reflex.Dom as R import Common.Model (Init (..)) import View.Payment.Pages (PagesIn (..), PagesOut (..)) import qualified View.Payment.Pages as Pages import View.Payment.Table (TableIn (..)) import qualified View.Payment.Table as Table data PaymentIn = PaymentIn { _paymentIn_init :: Init } data PaymentOut = PaymentOut { } widget :: forall t m. MonadWidget t m => PaymentIn -> m PaymentOut widget paymentIn = do R.divClass "payment" $ do rec _ <- Table.widget $ TableIn { _tableIn_init = _paymentIn_init paymentIn , _tableIn_currentPage = _pagesOut_currentPage pagesOut } pagesOut <- Pages.widget $ PagesIn { _pagesIn_payments = _init_payments . _paymentIn_init $ paymentIn } return $ PaymentOut {}