aboutsummaryrefslogtreecommitdiff
path: root/client/src/Util/Reflex.hs
diff options
context:
space:
mode:
authorJoris2021-01-03 13:40:40 +0100
committerJoris2021-01-03 13:54:20 +0100
commit11052951b74b9ad4b6a9412ae490086235f9154b (patch)
tree64526ac926c1bf470ea113f6cac8a33158684e8d /client/src/Util/Reflex.hs
parent371449b0e312a03162b78797b83dee9d81706669 (diff)
downloadbudget-11052951b74b9ad4b6a9412ae490086235f9154b.tar.gz
budget-11052951b74b9ad4b6a9412ae490086235f9154b.tar.bz2
budget-11052951b74b9ad4b6a9412ae490086235f9154b.zip
Rewrite in Rust
Diffstat (limited to 'client/src/Util/Reflex.hs')
-rw-r--r--client/src/Util/Reflex.hs59
1 files changed, 0 insertions, 59 deletions
diff --git a/client/src/Util/Reflex.hs b/client/src/Util/Reflex.hs
deleted file mode 100644
index aa5cebb..0000000
--- a/client/src/Util/Reflex.hs
+++ /dev/null
@@ -1,59 +0,0 @@
-module Util.Reflex
- ( visibleIfDyn
- , visibleIfEvent
- , divVisibleIf
- , divClassVisibleIf
- , flatten
- , flattenTuple
- , getBody
- ) where
-
-import qualified Data.Map as M
-import Data.Text (Text)
-import qualified GHCJS.DOM as Dom
-import qualified GHCJS.DOM.Document as Document
-import qualified GHCJS.DOM.HTMLCollection as HTMLCollection
-import GHCJS.DOM.Types (Element)
-import Reflex.Dom (Dynamic, Event, MonadWidget)
-import qualified Reflex.Dom as R
-
-visibleIfDyn :: forall t m a. MonadWidget t m => Dynamic t Bool -> m a -> m a -> m (Event t a)
-visibleIfDyn cond empty content =
- R.dyn $ R.ffor cond $ \case
- True -> content
- False -> empty
-
-visibleIfEvent :: forall t m a. MonadWidget t m => Event t Bool -> m a -> m a -> m (Dynamic t a)
-visibleIfEvent cond empty content =
- R.widgetHold empty $
- R.ffor cond $ \case
- True -> content
- False -> empty
-
-divVisibleIf :: forall t m a. MonadWidget t m => Dynamic t Bool -> m a -> m a
-divVisibleIf cond content = divClassVisibleIf cond "" content
-
-divClassVisibleIf :: forall t m a. MonadWidget t m => Dynamic t Bool -> Text -> m a -> m a
-divClassVisibleIf cond className content =
- R.elDynAttr
- "div"
- (fmap (\c -> (M.singleton "class" className) `M.union` if c then M.empty else M.singleton "style" "display:none") cond)
- content
-
-flatten :: forall t m a. MonadWidget t m => Event t (Event t a) -> m (Event t a)
-flatten e = do
- dyn <- R.holdDyn R.never e
- return $ R.switchDyn dyn
-
-flattenTuple
- :: forall t m a b. MonadWidget t m
- => Event t (Event t a, Event t b)
- -> m (Event t a, Event t b)
-flattenTuple e = (,) <$> (flatten $ fmap fst e) <*> (flatten $ fmap snd e)
-
-getBody :: forall t m. MonadWidget t m => m Element
-getBody = do
- document <- Dom.currentDocumentUnchecked
- nodelist <- Document.getElementsByTagName document ("body" :: String)
- Just body <- nodelist `HTMLCollection.item` 0
- return body