{-# 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)