{-# LANGUAGE TemplateHaskell #-}
module Swarm.TUI.View.Robot.Type where
import Brick.Focus (FocusRing)
import Brick.Widgets.List qualified as BL
import Brick.Widgets.TabularList.Grid
import Control.Lens hiding (Const, from, (<.>))
import Data.Sequence (Seq)
import Swarm.Game.Robot
import Swarm.Language.Syntax (Const)
import Swarm.Log
import Swarm.TUI.Model.Name
data RobotDetailsPaneState = RobotDetailsPaneState
{ RobotDetailsPaneState -> FocusRing Name
_detailFocus :: FocusRing Name
, RobotDetailsPaneState -> GenericList Name Seq LogEntry
_logsList :: BL.GenericList Name Seq LogEntry
, RobotDetailsPaneState -> List Name (Const, Int)
_cmdHistogramList :: BL.List Name (Const, Int)
}
makeLenses ''RobotDetailsPaneState
data RobotDisplay = RobotDisplay
{ RobotDisplay -> Bool
_isDetailsOpened :: Bool
, RobotDisplay -> GridTabularList Name Int
_robotsGridList :: GridTabularList Name RID
, RobotDisplay -> RobotDetailsPaneState
_robotDetailsPaneState :: RobotDetailsPaneState
}
makeLenses ''RobotDisplay