aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Category/Category.hs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/View/Category/Category.hs')
-rw-r--r--client/src/View/Category/Category.hs94
1 files changed, 0 insertions, 94 deletions
diff --git a/client/src/View/Category/Category.hs b/client/src/View/Category/Category.hs
deleted file mode 100644
index 5b41bb6..0000000
--- a/client/src/View/Category/Category.hs
+++ /dev/null
@@ -1,94 +0,0 @@
-{-# LANGUAGE ExplicitForAll #-}
-
-module View.Category.Category
- ( view
- , In(..)
- ) where
-
-import Data.Aeson (FromJSON)
-import qualified Data.Maybe as Maybe
-import qualified Data.Text as T
-import Reflex.Dom (Dynamic, Event, MonadWidget)
-import qualified Reflex.Dom as R
-
-import Common.Model (Category, CategoryPage (..), Currency,
- User, UserId)
-import qualified Common.Msg as Msg
-
-import qualified Component.Button as Button
-import qualified Component.Modal as Modal
-import qualified Component.Pages as Pages
-import Loadable (Loadable (..))
-import qualified Loadable
-import qualified Util.Ajax as AjaxUtil
-import qualified Util.Reflex as ReflexUtil
-import qualified Util.Reflex as ReflexUtil
-import qualified View.Category.Form as Form
-import qualified View.Category.Reducer as Reducer
-import qualified View.Category.Table as Table
-
-data In t = In
- { _in_users :: [User]
- , _in_currentUser :: UserId
- , _in_currency :: Currency
- }
-
-view :: forall t m. MonadWidget t m => In t -> m ()
-view input = do
- rec
- categoryPage <- Reducer.reducer $ Reducer.In
- { Reducer._in_page = page
- , Reducer._in_addCategory = R.leftmost [ headerAddCategory, tableAddCategory ]
- , Reducer._in_editCategory = editCategory
- , Reducer._in_deleteCategory = deleteCategory
- }
-
- let eventFromResult :: forall a. ((Event t (), Table.Out t, Pages.Out t) -> Event t a) -> m (Event t a)
- eventFromResult op = ReflexUtil.flatten $ (Maybe.fromMaybe R.never . fmap op) <$> result
-
- page <- eventFromResult $ Pages._out_newPage . (\(_, _, c) -> c)
- headerAddCategory <- eventFromResult $ (\(a, _, _) -> a)
- tableAddCategory <- eventFromResult $ Table._out_add . (\(_, b, _) -> b)
- editCategory <- eventFromResult $ Table._out_edit . (\(_, b, _) -> b)
- deleteCategory <- eventFromResult $ Table._out_delete . (\(_, b, _) -> b)
-
- result <- Loadable.viewShowValueWhileLoading categoryPage $
- \(CategoryPage page categories usedCategories count) -> do
- header <- headerView
-
- table <- Table.view $ Table.In
- { Table._in_currentUser = _in_currentUser input
- , Table._in_currency = _in_currency input
- , Table._in_categories = categories
- , Table._in_usedCategories = usedCategories
- , Table._in_users = _in_users input
- }
-
- pages <- Pages.view $ Pages.In
- { Pages._in_total = R.constDyn count
- , Pages._in_perPage = Reducer.perPage
- , Pages._in_page = page
- }
-
- return (header, table, pages)
-
- return ()
-
-headerView :: forall t m. MonadWidget t m => m (Event t ())
-headerView =
- R.divClass "withMargin" $
- R.divClass "titleButton" $ do
- R.el "h1" $
- R.text $
- Msg.get Msg.Category_Title
-
- addCategory <- Button._out_clic <$>
- (Button.view . Button.defaultIn . R.text $
- Msg.get Msg.Category_Add)
-
- addCategory <- Modal.view $ Modal.In
- { Modal._in_show = addCategory
- , Modal._in_content = Form.view $ Form.In { Form._in_operation = Form.New }
- }
-
- return addCategory