module Matterhorn.State.Help ( showHelpScreen ) where import Prelude () import Matterhorn.Prelude import Brick.Main ( viewportScroll, vScrollToBeginning ) import Matterhorn.Types showHelpScreen :: HelpTopic -> MH () showHelpScreen :: HelpTopic -> MH () showHelpScreen HelpTopic topic = do Mode curMode <- Getting Mode ChatState Mode -> MH Mode forall s (m :: * -> *) a. MonadState s m => Getting a s a -> m a use ((TeamState -> Const Mode TeamState) -> ChatState -> Const Mode ChatState Lens' ChatState TeamState csCurrentTeam((TeamState -> Const Mode TeamState) -> ChatState -> Const Mode ChatState) -> ((Mode -> Const Mode Mode) -> TeamState -> Const Mode TeamState) -> Getting Mode ChatState Mode forall b c a. (b -> c) -> (a -> b) -> a -> c .(Mode -> Const Mode Mode) -> TeamState -> Const Mode TeamState Lens' TeamState Mode tsMode) case Mode curMode of ShowHelp {} -> () -> MH () forall (m :: * -> *) a. Monad m => a -> m a return () Mode _ -> do EventM Name () -> MH () forall a. EventM Name a -> MH a mh (EventM Name () -> MH ()) -> EventM Name () -> MH () forall a b. (a -> b) -> a -> b $ ViewportScroll Name -> EventM Name () forall n. ViewportScroll n -> EventM n () vScrollToBeginning (Name -> ViewportScroll Name forall n. n -> ViewportScroll n viewportScroll Name HelpViewport) Mode -> MH () setMode (Mode -> MH ()) -> Mode -> MH () forall a b. (a -> b) -> a -> b $ HelpTopic -> Mode -> Mode ShowHelp HelpTopic topic Mode curMode