zwirn-0.2.3.1: app/zwirnmill/SampleBrowser/Draw.hs
module SampleBrowser.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 (Name (..), SampleBrowser (..))
drawSampleBrowser :: (Int, Int) -> SampleBrowser -> Widget Name
drawSampleBrowser (sx, _) (SampleB search cont) = vBox [txt ("search: " <> search), txt $ T.replicate sx "━", viewport SampleBrowserViewport Vertical $ drawSamples search cont]
drawSamples :: T.Text -> Vector (T.Text, Int) -> Widget Name
drawSamples search ss = vBox $ map drawSample (V.toList fs)
where
fs = V.filter (\(t, _) -> T.isPrefixOf (T.toLower search) (T.toLower t)) ss
drawSample :: (T.Text, Int) -> Widget Name
drawSample (name, num) = txt $ name <> " (" <> T.show num <> ")"