From 11052951b74b9ad4b6a9412ae490086235f9154b Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 3 Jan 2021 13:40:40 +0100 Subject: Rewrite in Rust --- client/src/Component/Button.hs | 57 ------------------------------------------ 1 file changed, 57 deletions(-) delete mode 100644 client/src/Component/Button.hs (limited to 'client/src/Component/Button.hs') diff --git a/client/src/Component/Button.hs b/client/src/Component/Button.hs deleted file mode 100644 index 153a61b..0000000 --- a/client/src/Component/Button.hs +++ /dev/null @@ -1,57 +0,0 @@ -module Component.Button - ( In(..) - , Out(..) - , view - , defaultIn - ) where - -import qualified Data.Map as M -import Data.Maybe (catMaybes) -import Data.Text (Text) -import qualified Data.Text as T -import Reflex.Dom (Dynamic, Event, MonadWidget) -import qualified Reflex.Dom as R - -import qualified View.Icon as Icon - -data In t m = In - { _in_class :: Dynamic t Text - , _in_content :: m () - , _in_waiting :: Event t Bool - , _in_tabIndex :: Maybe Int - , _in_submit :: Bool - } - -defaultIn :: forall t m. MonadWidget t m => m () -> In t m -defaultIn content = In - { _in_class = R.constDyn "" - , _in_content = content - , _in_waiting = R.never - , _in_tabIndex = Nothing - , _in_submit = False - } - -data Out t = Out - { _out_clic :: Event t () - } - -view :: forall t m. MonadWidget t m => In t m -> m (Out t) -view input = do - dynWaiting <- R.holdDyn False $ _in_waiting input - - let attr = do - buttonClass <- _in_class input - waiting <- dynWaiting - return . M.fromList . catMaybes $ - [ Just ("type", if _in_submit input then "submit" else "button") - , (\i -> ("tabindex", T.pack . show $ i)) <$> _in_tabIndex input - , Just ("class", T.intercalate " " [ buttonClass, if waiting then "waiting" else "" ]) - ] - - (e, _) <- R.elDynAttr' "button" attr $ do - Icon.loading - R.divClass "content" $ _in_content input - - return $ Out - { _out_clic = R.domEvent R.Click e - } -- cgit v1.2.3