aboutsummaryrefslogtreecommitdiff
path: root/client/src/Component/Input.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/Input.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/Input.hs')
-rw-r--r--client/src/Component/Input.hs79
1 files changed, 39 insertions, 40 deletions
diff --git a/client/src/Component/Input.hs b/client/src/Component/Input.hs
index 9ab4d58..37020da 100644
--- a/client/src/Component/Input.hs
+++ b/client/src/Component/Input.hs
@@ -1,8 +1,8 @@
module Component.Input
- ( InputIn(..)
- , InputOut(..)
- , input
- , defaultInputIn
+ ( In(..)
+ , Out(..)
+ , view
+ , defaultIn
) where
import qualified Data.Map as M
@@ -17,40 +17,39 @@ import Reflex.Dom (Dynamic, Event, MonadWidget, Reflex,
import qualified Reflex.Dom as R
import qualified Common.Util.Validation as ValidationUtil
-import Component.Button (ButtonIn (..), ButtonOut (..))
import qualified Component.Button as Button
import qualified View.Icon as Icon
-data InputIn a = InputIn
- { _inputIn_hasResetButton :: Bool
- , _inputIn_label :: Text
- , _inputIn_initialValue :: Text
- , _inputIn_inputType :: Text
- , _inputIn_validation :: Text -> Validation Text a
+data In a = In
+ { _in_hasResetButton :: Bool
+ , _in_label :: Text
+ , _in_initialValue :: Text
+ , _in_inputType :: Text
+ , _in_validation :: Text -> Validation Text a
}
-defaultInputIn :: InputIn Text
-defaultInputIn = InputIn
- { _inputIn_hasResetButton = True
- , _inputIn_label = ""
- , _inputIn_initialValue = ""
- , _inputIn_inputType = "text"
- , _inputIn_validation = V.Success
+defaultIn :: In Text
+defaultIn = In
+ { _in_hasResetButton = True
+ , _in_label = ""
+ , _in_initialValue = ""
+ , _in_inputType = "text"
+ , _in_validation = V.Success
}
-data InputOut t a = InputOut
- { _inputOut_raw :: Dynamic t Text
- , _inputOut_value :: Dynamic t (Validation Text a)
- , _inputOut_enter :: Event t ()
+data Out t a = Out
+ { _out_raw :: Dynamic t Text
+ , _out_value :: Dynamic t (Validation Text a)
+ , _out_enter :: Event t ()
}
-input
+view
:: forall t m a b. MonadWidget t m
- => InputIn a
+ => In a
-> Event t Text -- reset
-> Event t b -- validate
- -> m (InputOut t a)
-input inputIn reset validate = do
+ -> m (Out t a)
+view input reset validate = do
rec
let resetValue = R.leftmost
[ reset
@@ -58,7 +57,7 @@ input inputIn reset validate = do
]
inputAttr = R.ffor value (\v ->
- if T.null v && _inputIn_inputType inputIn /= "date"
+ if T.null v && _in_inputType input /= "date"
then M.empty
else M.singleton "class" "filled")
@@ -70,7 +69,7 @@ input inputIn reset validate = do
, if Maybe.isJust e then "error" else ""
])
- let valueWithValidation = R.ffor value (\v -> (v, _inputIn_validation inputIn $ v))
+ let valueWithValidation = R.ffor value (\v -> (v, _in_validation input $ v))
inputError <- getInputError valueWithValidation validate
(textInput, resetClic) <- R.elDynAttr "div" containerAttr $ do
@@ -79,21 +78,21 @@ input inputIn reset validate = do
textInput <- R.textInput $ R.def
& R.attributes .~ inputAttr
& R.setValue .~ resetValue
- & R.textInputConfig_initialValue .~ (_inputIn_initialValue inputIn)
- & R.textInputConfig_inputType .~ (_inputIn_inputType inputIn)
+ & R.textInputConfig_initialValue .~ (_in_initialValue input)
+ & R.textInputConfig_inputType .~ (_in_inputType input)
R.divClass "label" $
- R.text (_inputIn_label inputIn)
+ R.text (_in_label input)
return textInput
resetClic <-
- if _inputIn_hasResetButton inputIn
+ if _in_hasResetButton input
then
- _buttonOut_clic <$> (Button.button $
- (Button.defaultButtonIn Icon.cross)
- { _buttonIn_class = R.constDyn "reset"
- , _buttonIn_tabIndex = Just (-1)
+ Button._out_clic <$> (Button.view $
+ (Button.defaultIn Icon.cross)
+ { Button._in_class = R.constDyn "reset"
+ , Button._in_tabIndex = Just (-1)
})
else
return R.never
@@ -105,10 +104,10 @@ input inputIn reset validate = do
let enter = fmap (const ()) $ R.ffilter ((==) 13) . R._textInput_keypress $ textInput
- return $ InputOut
- { _inputOut_raw = value
- , _inputOut_value = fmap snd valueWithValidation
- , _inputOut_enter = enter
+ return $ Out
+ { _out_raw = value
+ , _out_value = fmap snd valueWithValidation
+ , _out_enter = enter
}
getInputError