zwirn-0.2.3.1: app/zwirnmill/EnvBrowser/Draw.hs
module EnvBrowser.Draw where
import Brick (ViewportType (..), Widget)
import Brick.Widgets.Core
import qualified Data.Text as T
import Data.Vector (Vector)
import qualified Data.Vector as V
import UI.Core (EnvBrowser (..), Name (..))
drawEnvBrowser :: (Int, Int) -> EnvBrowser -> Widget Name
drawEnvBrowser (sx, _) (EnvB search cont) = vBox [txt ("search: " <> search), txt $ T.replicate sx "━", viewport EnvBrowserViewport Vertical $ drawEnv search cont]
drawEnv :: T.Text -> Vector T.Text -> Widget Name
drawEnv search ss = vBox $ map drawEntry (V.toList fs)
where
fs = V.filter (T.isPrefixOf (T.toLower search) . T.toLower) ss
drawEntry :: T.Text -> Widget Name
drawEntry = txt