taskell-1.9.2.0: src/UI/Draw/Main.hs
{-# LANGUAGE NoImplicitPrelude #-}
module UI.Draw.Main
( renderMain
) where
import ClassyPrelude
import Brick
import Control.Lens ((^.))
import Data.Sequence (mapWithIndex)
import Events.State.Types (lists)
import IO.Config.Layout (padding, statusBar)
import UI.Draw.Main.List (renderList)
import UI.Draw.Main.Search (renderSearch)
import UI.Draw.Main.StatusBar (renderStatusBar)
import UI.Draw.Types (DSWidget, DrawState (..))
import UI.Types (ResourceName (..))
renderMain :: DSWidget
renderMain = do
ls <- (^. lists) <$> asks dsState
listWidgets <- toList <$> sequence (renderList `mapWithIndex` ls)
pad <- padding <$> asks dsLayout
let mainWidget = viewport RNLists Horizontal . padTopBottom pad $ hBox listWidgets
sb <- bool emptyWidget <$> renderStatusBar <*> (statusBar <$> asks dsLayout)
renderSearch (mainWidget <=> sb)