taskell-1.9.1.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
showStatusBar <- statusBar <$> asks dsLayout
sb <- renderStatusBar
let sb' =
if showStatusBar
then sb
else emptyWidget
renderSearch (mainWidget <=> sb')