taskell-1.7.0.0: src/UI/Draw/Main/Search.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module UI.Draw.Main.Search
( renderSearch
) where
import Brick
import ClassyPrelude
import Control.Lens ((^.))
import Events.State.Types (mode, searchTerm)
import Events.State.Types.Mode (Mode (..))
import IO.Config.Layout (columnPadding)
import UI.Draw.Field (field)
import UI.Draw.Types (DSWidget, DrawState (..))
import UI.Theme
import UI.Types (ResourceName (..))
renderSearch :: Widget ResourceName -> DSWidget
renderSearch mainWidget = do
m <- (^. mode) <$> asks dsState
term <- (^. searchTerm) <$> asks dsState
case term of
Just searchField -> do
colPad <- columnPadding . dsLayout <$> ask
let attr =
withAttr $
case m of
Search -> taskCurrentAttr
_ -> taskAttr
let widget = attr . padLeftRight colPad $ txt "/" <+> field searchField
pure $ mainWidget <=> widget
_ -> pure mainWidget