diff options
author | Joris | 2021-01-03 13:40:40 +0100 |
---|---|---|
committer | Joris | 2021-01-03 13:54:20 +0100 |
commit | 11052951b74b9ad4b6a9412ae490086235f9154b (patch) | |
tree | 64526ac926c1bf470ea113f6cac8a33158684e8d /client/src/View/Income/Reducer.hs | |
parent | 371449b0e312a03162b78797b83dee9d81706669 (diff) |
Rewrite in Rust
Diffstat (limited to 'client/src/View/Income/Reducer.hs')
-rw-r--r-- | client/src/View/Income/Reducer.hs | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/client/src/View/Income/Reducer.hs b/client/src/View/Income/Reducer.hs deleted file mode 100644 index ea9f664..0000000 --- a/client/src/View/Income/Reducer.hs +++ /dev/null @@ -1,59 +0,0 @@ -module View.Income.Reducer - ( perPage - , reducer - , In(..) - ) where - -import Data.Text (Text) -import qualified Data.Text as T -import Reflex.Dom (Dynamic, Event, MonadWidget) -import qualified Reflex.Dom as R - -import Common.Model (IncomePage) - -import Loadable (Loadable (..)) -import qualified Loadable as Loadable -import qualified Util.Ajax as AjaxUtil -import qualified Util.Either as EitherUtil - -perPage :: Int -perPage = 7 - -data In t a b c = In - { _in_page :: Event t Int - , _in_addIncome :: Event t a - , _in_editIncome :: Event t b - , _in_deleteIncome :: Event t c - } - -reducer :: forall t m a b c. MonadWidget t m => In t a b c -> m (Dynamic t (Loadable IncomePage)) -reducer input = do - - postBuild <- R.getPostBuild - - currentPage <- R.holdDyn 1 (_in_page input) - - let loadPage = - R.leftmost - [ 1 <$ postBuild - , _in_page input - , 1 <$ _in_addIncome input - , R.tag (R.current currentPage) (_in_editIncome input) - , R.tag (R.current currentPage) (_in_deleteIncome input) - ] - - getResult <- AjaxUtil.get $ fmap pageUrl loadPage - - R.holdDyn - Loading - (R.leftmost - [ Loading <$ loadPage - , Loadable.fromEither <$> getResult - ]) - - where - pageUrl p = - "api/incomes?page=" - <> (T.pack . show $ p) - <> "&perPage=" - <> (T.pack . show $ perPage) |