packages feed

mushu-0.1.0: app/UI/Views/Main.hs

module UI.Views.Main
( draw
) where

import ClassyPrelude

import Brick.Widgets.Center (vCenter, hCenter)
import Brick.Widgets.Border (hBorder)

import Brick.Types (Widget, Padding(..))
import Brick.Widgets.Core (vBox, hLimit, str, padLeft, padRight, (<=>), (<+>))

import Lens.Micro.Platform ((^.))

import qualified UI.Widgets.Status as Status
import qualified UI.Widgets.Help as Help
import qualified UI.Widgets.Command as Command
import qualified UI.Widgets.Notification as Notification
import UI.Widgets.Playlist (playingSongL)

import UI.Types

draw :: AppState n -> Widget n -> [Widget n]
draw state widget = [ui]
    where
        {-total = str $ show $ Vec.length $ mails^.(L.listElementsL)-}
        ui = vCenter $ vBox widgets
        -- Cheap centering
        view = hBorder <=> (str "       " <+> hCenter activeViewWidget <+> str "?: Help")
        activeViewWidget = str $ show (state^.activeView)
        widgets = [--Help.mkWidget
                   Status.mkWidget state (state^.playlistStateL.playingSongL)
                  , hBorder
                  , hCenter widget
                  , view
                  , Notification.mkWidget (state^.notificationState)
                  -- , Command.mkWidget
                  ]