aboutsummaryrefslogtreecommitdiff
path: root/client/src/View/Payment/Delete.hs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/View/Payment/Delete.hs')
-rw-r--r--client/src/View/Payment/Delete.hs57
1 files changed, 26 insertions, 31 deletions
diff --git a/client/src/View/Payment/Delete.hs b/client/src/View/Payment/Delete.hs
index 65ce660..e7e319e 100644
--- a/client/src/View/Payment/Delete.hs
+++ b/client/src/View/Payment/Delete.hs
@@ -1,39 +1,34 @@
module View.Payment.Delete
- ( view
- , DeleteIn(..)
- , DeleteOut(..)
+ ( Input(..)
+ , view
) 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 (Payment (..))
-import qualified Common.Msg as Msg
-import Component (ButtonIn (..), ButtonOut (..))
-import qualified Component as Component
-import qualified Util.Ajax as Ajax
-import qualified Util.Either as EitherUtil
-import qualified Util.WaitFor as WaitFor
-
-data DeleteIn t = DeleteIn
- { _deleteIn_payment :: Dynamic t Payment
- }
-
-data DeleteOut t = DeleteOut
- { _deleteOut_cancel :: Event t ()
- , _deleteOut_validate :: Event t Payment
+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 (Payment (..))
+import qualified Common.Msg as Msg
+import Component (ButtonIn (..), ButtonOut (..))
+import qualified Component as Component
+import qualified Component.Modal as Modal
+import qualified Util.Ajax as Ajax
+import qualified Util.Either as EitherUtil
+import qualified Util.WaitFor as WaitFor
+
+data Input t = Input
+ { _input_payment :: Dynamic t Payment
}
-view :: forall t m. MonadWidget t m => (DeleteIn t) -> m (DeleteOut t)
-view deleteIn =
+view :: forall t m. MonadWidget t m => (Input t) -> Modal.Content t m Payment
+view input _ =
R.divClass "delete" $ do
R.divClass "deleteHeader" $ R.text $ Msg.get Msg.Payment_DeleteConfirm
R.divClass "deleteContent" $ do
- (deletedPayment, cancel) <- R.divClass "buttons" $ do
+ (confirm, cancel) <- R.divClass "buttons" $ do
cancel <- Component._buttonOut_clic <$> (Component.button $
(Component.defaultButtonIn (R.text $ Msg.get Msg.Dialog_Undo))
@@ -48,7 +43,7 @@ view deleteIn =
})
let url =
- R.ffor (_deleteIn_payment deleteIn) (\id ->
+ R.ffor (_input_payment input) (\id ->
T.concat ["/payment/", T.pack . show $ _payment_id id]
)
@@ -58,7 +53,7 @@ view deleteIn =
return (R.fmapMaybe EitherUtil.eitherToMaybe result, cancel)
- return DeleteOut
- { _deleteOut_cancel = cancel
- , _deleteOut_validate = R.tag (R.current $ _deleteIn_payment deleteIn) deletedPayment
- }
+ return $
+ ( R.leftmost [ cancel, () <$ confirm ]
+ , R.tag (R.current $ _input_payment input) confirm
+ )