aboutsummaryrefslogtreecommitdiff
path: root/client/src/Component/ModalForm.hs
diff options
context:
space:
mode:
authorJoris2019-10-22 22:26:38 +0200
committerJoris2019-10-22 22:26:38 +0200
commit613ffccac4b3ab25c6d4c631fab757da0b35acf6 (patch)
tree13e448af89f4079bb62d7ce8b5a44b6a64515129 /client/src/Component/ModalForm.hs
parent80f09e8b3a5c856e60922a73c9161a8c5392e4d4 (diff)
downloadbudget-613ffccac4b3ab25c6d4c631fab757da0b35acf6.tar.gz
budget-613ffccac4b3ab25c6d4c631fab757da0b35acf6.tar.bz2
budget-613ffccac4b3ab25c6d4c631fab757da0b35acf6.zip
Harmonize view component code style
Diffstat (limited to 'client/src/Component/ModalForm.hs')
-rw-r--r--client/src/Component/ModalForm.hs61
1 files changed, 30 insertions, 31 deletions
diff --git a/client/src/Component/ModalForm.hs b/client/src/Component/ModalForm.hs
index 63cb1d2..ea53beb 100644
--- a/client/src/Component/ModalForm.hs
+++ b/client/src/Component/ModalForm.hs
@@ -1,7 +1,7 @@
module Component.ModalForm
- ( modalForm
- , ModalFormIn(..)
- , ModalFormOut(..)
+ ( view
+ , In(..)
+ , Out(..)
) where
import Data.Aeson (ToJSON)
@@ -14,57 +14,56 @@ import Reflex.Dom (Dynamic, Event, MonadWidget)
import qualified Reflex.Dom as R
import qualified Common.Msg as Msg
-import Component.Button (ButtonIn (..))
import qualified Component.Button as Button
import qualified Util.Either as EitherUtil
import qualified Util.Validation as ValidationUtil
import qualified Util.WaitFor as WaitFor
-data ModalFormIn m t a b e = ModalFormIn
- { _modalFormIn_headerLabel :: Text
- , _modalFormIn_form :: m (Dynamic t (Validation e a))
- , _modalFormIn_ajax :: Event t a -> m (Event t (Either Text b))
+data In m t a b e = In
+ { _in_headerLabel :: Text
+ , _in_form :: m (Dynamic t (Validation e a))
+ , _in_ajax :: Event t a -> m (Event t (Either Text b))
}
-data ModalFormOut t a = ModalFormOut
- { _modalFormOut_hide :: Event t ()
- , _modalFormOut_cancel :: Event t ()
- , _modalFormOut_confirm :: Event t ()
- , _modalFormOut_validate :: Event t a
+data Out t a = Out
+ { _out_hide :: Event t ()
+ , _out_cancel :: Event t ()
+ , _out_confirm :: Event t ()
+ , _out_validate :: Event t a
}
-modalForm :: forall t m a b e. (MonadWidget t m, ToJSON a) => ModalFormIn m t a b e -> m (ModalFormOut t b)
-modalForm modalFormIn =
+view :: forall t m a b e. (MonadWidget t m, ToJSON a) => In m t a b e -> m (Out t b)
+view input =
R.divClass "form" $ do
R.divClass "formHeader" $
- R.text (_modalFormIn_headerLabel modalFormIn)
+ R.text (_in_headerLabel input)
R.divClass "formContent" $ do
rec
- form <- _modalFormIn_form modalFormIn
+ form <- _in_form input
(validate, cancel, confirm) <- R.divClass "buttons" $ do
rec
- cancel <- Button._buttonOut_clic <$> (Button.button $
- (Button.defaultButtonIn (R.text $ Msg.get Msg.Dialog_Undo))
- { _buttonIn_class = R.constDyn "undo" })
+ cancel <- Button._out_clic <$> (Button.view $
+ (Button.defaultIn (R.text $ Msg.get Msg.Dialog_Undo))
+ { Button._in_class = R.constDyn "undo" })
- confirm <- Button._buttonOut_clic <$> (Button.button $
- (Button.defaultButtonIn (R.text $ Msg.get Msg.Dialog_Confirm))
- { _buttonIn_class = R.constDyn "confirm"
- , _buttonIn_waiting = waiting
- , _buttonIn_submit = True
+ confirm <- Button._out_clic <$> (Button.view $
+ (Button.defaultIn (R.text $ Msg.get Msg.Dialog_Confirm))
+ { Button._in_class = R.constDyn "confirm"
+ , Button._in_waiting = waiting
+ , Button._in_submit = True
})
(validate, waiting) <- WaitFor.waitFor
- (_modalFormIn_ajax modalFormIn)
+ (_in_ajax input)
(ValidationUtil.fireValidation form confirm)
return (R.fmapMaybe EitherUtil.eitherToMaybe validate, cancel, confirm)
- return ModalFormOut
- { _modalFormOut_hide = R.leftmost [ cancel, () <$ validate ]
- , _modalFormOut_cancel = cancel
- , _modalFormOut_confirm = confirm
- , _modalFormOut_validate = validate
+ return Out
+ { _out_hide = R.leftmost [ cancel, () <$ validate ]
+ , _out_cancel = cancel
+ , _out_confirm = confirm
+ , _out_validate = validate
}