module Matterhorn.Events.PostListWindow where
import Prelude ()
import Matterhorn.Prelude
import qualified Graphics.Vty as Vty
import Network.Mattermost.Types ( TeamId )
import Matterhorn.Types
import Matterhorn.Events.Keybindings
import Matterhorn.State.PostListWindow
onEventPostListWindow :: TeamId -> Vty.Event -> MH ()
onEventPostListWindow :: TeamId -> Event -> MH ()
onEventPostListWindow TeamId
tId =
MH Bool -> MH ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (MH Bool -> MH ()) -> (Event -> MH Bool) -> Event -> MH ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (KeyConfig -> KeyHandlerMap) -> Event -> MH Bool
handleKeyboardEvent (TeamId -> KeyConfig -> KeyHandlerMap
postListWindowKeybindings TeamId
tId)
postListWindowKeybindings :: TeamId -> KeyConfig -> KeyHandlerMap
postListWindowKeybindings :: TeamId -> KeyConfig -> KeyHandlerMap
postListWindowKeybindings TeamId
tId = [KeyEventHandler] -> KeyConfig -> KeyHandlerMap
mkKeybindings (TeamId -> [KeyEventHandler]
postListWindowKeyHandlers TeamId
tId)
postListWindowKeyHandlers :: TeamId -> [KeyEventHandler]
postListWindowKeyHandlers :: TeamId -> [KeyEventHandler]
postListWindowKeyHandlers TeamId
tId =
[ KeyEvent -> Text -> MH () -> KeyEventHandler
mkKb KeyEvent
CancelEvent Text
"Exit post browsing" (MH () -> KeyEventHandler) -> MH () -> KeyEventHandler
forall a b. (a -> b) -> a -> b
$ TeamId -> MH ()
exitPostListMode TeamId
tId
, KeyEvent -> Text -> MH () -> KeyEventHandler
mkKb KeyEvent
SelectUpEvent Text
"Select the previous message" (MH () -> KeyEventHandler) -> MH () -> KeyEventHandler
forall a b. (a -> b) -> a -> b
$ TeamId -> MH ()
postListSelectUp TeamId
tId
, KeyEvent -> Text -> MH () -> KeyEventHandler
mkKb KeyEvent
SelectDownEvent Text
"Select the next message" (MH () -> KeyEventHandler) -> MH () -> KeyEventHandler
forall a b. (a -> b) -> a -> b
$ TeamId -> MH ()
postListSelectDown TeamId
tId
, KeyEvent -> Text -> MH () -> KeyEventHandler
mkKb KeyEvent
FlagMessageEvent Text
"Toggle the selected message flag" (MH () -> KeyEventHandler) -> MH () -> KeyEventHandler
forall a b. (a -> b) -> a -> b
$ TeamId -> MH ()
postListUnflagSelected TeamId
tId
, KeyEvent -> Text -> MH () -> KeyEventHandler
mkKb KeyEvent
ActivateListItemEvent Text
"Jump to and select current message" (MH () -> KeyEventHandler) -> MH () -> KeyEventHandler
forall a b. (a -> b) -> a -> b
$ TeamId -> MH ()
postListJumpToCurrent TeamId
tId
]