module View.Payment ( widget , PaymentIn(..) , PaymentOut(..) ) where import Reflex.Dom (MonadWidget) import qualified Reflex.Dom as R import Common.Model (Init (..)) import View.Payment.Header (HeaderIn (..)) import qualified View.Payment.Header as Header 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 _ <- Header.widget $ HeaderIn { _headerIn_init = _paymentIn_init $ paymentIn } _ <- 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 {}