module Chiasma.Pane where

import Chiasma.Data.Ident (Ident)
import Chiasma.Data.TmuxId (PaneId)
import qualified Chiasma.Data.View as Tmux (View(View))
import Chiasma.Data.Views (Views)
import qualified Chiasma.View as Views (insertPane)

addPane :: MonadDeepState s Views m => Ident -> m (Tmux.View PaneId)
addPane :: Ident -> m (View PaneId)
addPane Ident
ident = do
  (Views -> Views) -> m ()
forall s' s (m :: * -> *).
MonadDeepState s s' m =>
(s' -> s') -> m ()
modify ((Views -> Views) -> m ()) -> (Views -> Views) -> m ()
forall a b. (a -> b) -> a -> b
$ View PaneId -> Views -> Views
Views.insertPane View PaneId
pane
  return View PaneId
pane
  where
    pane :: View PaneId
pane = Ident -> Maybe PaneId -> View PaneId
forall a. Ident -> Maybe a -> View a
Tmux.View Ident
ident Maybe PaneId
forall a. Maybe a
Nothing