module Matterhorn.State.Help ( showHelpScreen ) where import Prelude () import Matterhorn.Prelude import Brick.Main ( viewportScroll, vScrollToBeginning ) import Network.Mattermost.Types ( TeamId ) import Matterhorn.Types showHelpScreen :: TeamId -> HelpTopic -> MH () showHelpScreen :: TeamId -> HelpTopic -> MH () showHelpScreen TeamId tId HelpTopic topic = do Mode curMode <- TeamId -> MH Mode getTeamMode TeamId tId case Mode curMode of ShowHelp {} -> () -> MH () forall a. a -> MH a forall (m :: * -> *) a. Monad m => a -> m a return () Mode _ -> do EventM Name ChatState () -> MH () forall a. EventM Name ChatState a -> MH a mh (EventM Name ChatState () -> MH ()) -> EventM Name ChatState () -> MH () forall a b. (a -> b) -> a -> b $ ViewportScroll Name -> forall s. EventM Name s () forall n. ViewportScroll n -> forall s. EventM n s () vScrollToBeginning (Name -> ViewportScroll Name forall n. n -> ViewportScroll n viewportScroll Name HelpViewport) TeamId -> Mode -> MH () pushMode TeamId tId (Mode -> MH ()) -> Mode -> MH () forall a b. (a -> b) -> a -> b $ HelpTopic -> Mode ShowHelp HelpTopic topic