packages feed

matterhorn-50200.4.0: src/Events/ChannelListOverlay.hs

module Events.ChannelListOverlay
  ( onEventChannelListOverlay
  , channelListOverlayKeybindings
  )
where

import qualified Graphics.Vty as Vty

import           Events.Keybindings
import           State.ChannelListOverlay
import           State.ListOverlay
import           Types


onEventChannelListOverlay :: Vty.Event -> MH ()
onEventChannelListOverlay =
    onEventListOverlay csChannelListOverlay channelListOverlayKeybindings

-- | The keybindings we want to use while viewing a channel list overlay
channelListOverlayKeybindings :: KeyConfig -> [Keybinding]
channelListOverlayKeybindings = mkKeybindings
    [ mkKb CancelEvent "Close the channel search list" (exitListOverlay csChannelListOverlay)
    , mkKb SearchSelectUpEvent "Select the previous channel" channelListSelectUp
    , mkKb SearchSelectDownEvent "Select the next channel" channelListSelectDown
    , mkKb PageDownEvent "Page down in the channel list" channelListPageDown
    , mkKb PageUpEvent "Page up in the channel list" channelListPageUp
    , mkKb ActivateListItemEvent "Join the selected channel" (listOverlayActivateCurrent csChannelListOverlay)
    ]