diff options
Diffstat (limited to 'client/src/View/Payment/Header.hs')
| -rw-r--r-- | client/src/View/Payment/Header.hs | 25 | 
1 files changed, 19 insertions, 6 deletions
diff --git a/client/src/View/Payment/Header.hs b/client/src/View/Payment/Header.hs index 3f2adc3..f64f11d 100644 --- a/client/src/View/Payment/Header.hs +++ b/client/src/View/Payment/Header.hs @@ -8,10 +8,11 @@ import           Control.Monad          (forM_)  import           Control.Monad.IO.Class (liftIO)  import qualified Data.List              as L hiding (groupBy)  import           Data.Maybe             (fromMaybe) +import           Data.Text              (Text)  import qualified Data.Text              as T  import qualified Data.Time              as Time  import           Prelude                hiding (init) -import           Reflex.Dom             (MonadWidget) +import           Reflex.Dom             (Dynamic, MonadWidget)  import qualified Reflex.Dom             as R  import           Common.Model           (Currency, ExceedingPayer (..), @@ -21,7 +22,8 @@ import qualified Common.Model           as CM  import qualified Common.Msg             as Msg  import qualified Common.View.Format     as Format -import           Component              (ButtonIn (..)) +import           Component              (ButtonIn (..), InputIn (..), +                                         InputOut (..))  import qualified Component              as Component  import qualified Util.List              as L @@ -29,16 +31,19 @@ data HeaderIn t = HeaderIn    { _headerIn_init :: Init    } -data HeaderOut = HeaderOut -  { +data HeaderOut t = HeaderOut +  { _headerOut_search :: Dynamic t Text    } -widget :: forall t m. MonadWidget t m => HeaderIn t -> m HeaderOut +widget :: forall t m. MonadWidget t m => HeaderIn t -> m (HeaderOut t)  widget headerIn =    R.divClass "header" $ do      payerAndAdd incomes payments users currency +    search <- searchLine      infos payments users currency -    return $ HeaderOut {} +    return $ HeaderOut +      { _headerOut_search = search +      }    where init = _headerIn_init headerIn          incomes = _init_incomes init          payments = filter ((==) Punctual . _payment_frequency) (_init_payments init) @@ -98,3 +103,11 @@ infos payments users currency =              . L.groupBy fst              . map (\p -> (_payment_user p, _payment_cost p))              $ payments + +searchLine :: forall t m. MonadWidget t m => m (Dynamic t Text) +searchLine = +  R.divClass "searchLine" $ +    _inputOut_value <$> (Component.input $ InputIn +      { _inputIn_reset = R.never +      , _inputIn_label = Msg.get Msg.Search_Name +      })  | 
