{-# LANGUAGE MultiWayIf #-} {-# LANGUAGE PackageImports #-} module Matterhorn.Draw (draw) where import Prelude () import Matterhorn.Prelude import Brick import Lens.Micro.Platform ( _2, singular, _Just ) import Matterhorn.Draw.ChannelTopicWindow import Matterhorn.Draw.DeleteChannelConfirm import Matterhorn.Draw.LeaveChannelConfirm import Matterhorn.Draw.Main import Matterhorn.Draw.ThemeListOverlay import Matterhorn.Draw.PostListOverlay import Matterhorn.Draw.ShowHelp import Matterhorn.Draw.UserListOverlay import Matterhorn.Draw.ChannelListOverlay import Matterhorn.Draw.ReactionEmojiListOverlay import Matterhorn.Draw.TabbedWindow import Matterhorn.Draw.ManageAttachments import Matterhorn.Draw.NotifyPrefs import Matterhorn.Types draw :: ChatState -> [Widget Name] draw :: ChatState -> [Widget Name] draw ChatState st = case ChatState stChatState -> Getting Mode ChatState Mode -> Mode forall s a. s -> Getting a s a -> a ^.(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 of Mode Main -> [Widget Name] mainLayers Mode UrlSelect -> [Widget Name] mainLayers Mode ChannelSelect -> [Widget Name] mainLayers Mode MessageSelect -> [Widget Name] mainLayers Mode MessageSelectDeleteConfirm -> [Widget Name] mainLayers ShowHelp HelpTopic topic Mode _ -> HelpTopic -> ChatState -> [Widget Name] drawShowHelp HelpTopic topic ChatState st Mode ThemeListOverlay -> ChatState -> Widget Name drawThemeListOverlay ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayers Mode LeaveChannelConfirm -> ChatState -> Widget Name drawLeaveChannelConfirm ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode DeleteChannelConfirm -> ChatState -> Widget Name drawDeleteChannelConfirm ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome PostListOverlay PostListContents contents -> PostListContents -> ChatState -> Widget Name drawPostListOverlay PostListContents contents ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode UserListOverlay -> ChatState -> Widget Name drawUserListOverlay ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode ChannelListOverlay -> ChatState -> Widget Name drawChannelListOverlay ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode ReactionEmojiListOverlay -> ChatState -> Widget Name drawReactionEmojiListOverlay ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode ViewMessage -> TabbedWindow ViewMessageWindowTab -> ChatState -> Widget Name forall a. (Eq a, Show a) => TabbedWindow a -> ChatState -> Widget Name drawTabbedWindow TabbedWindow ViewMessageWindowTab messageViewWindow ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode ManageAttachments -> ChatState -> Widget Name drawManageAttachments ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode ManageAttachmentsBrowseFiles -> ChatState -> Widget Name drawManageAttachments ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode EditNotifyPrefs -> ChatState -> Widget Name drawNotifyPrefs ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome Mode ChannelTopicWindow -> ChatState -> Widget Name drawChannelTopicWindow ChatState st Widget Name -> [Widget Name] -> [Widget Name] forall a. a -> [a] -> [a] : [Widget Name] mainLayersMonochrome where mainLayers :: [Widget Name] mainLayers = Bool -> ChatState -> [Widget Name] drawMain Bool True ChatState st mainLayersMonochrome :: [Widget Name] mainLayersMonochrome = Bool -> ChatState -> [Widget Name] drawMain Bool False ChatState st messageViewWindow :: TabbedWindow ViewMessageWindowTab messageViewWindow = ChatState stChatState -> Getting (TabbedWindow ViewMessageWindowTab) ChatState (TabbedWindow ViewMessageWindowTab) -> TabbedWindow ViewMessageWindowTab forall s a. s -> Getting a s a -> a ^.(TeamState -> Const (TabbedWindow ViewMessageWindowTab) TeamState) -> ChatState -> Const (TabbedWindow ViewMessageWindowTab) ChatState Lens' ChatState TeamState csCurrentTeam((TeamState -> Const (TabbedWindow ViewMessageWindowTab) TeamState) -> ChatState -> Const (TabbedWindow ViewMessageWindowTab) ChatState) -> ((TabbedWindow ViewMessageWindowTab -> Const (TabbedWindow ViewMessageWindowTab) (TabbedWindow ViewMessageWindowTab)) -> TeamState -> Const (TabbedWindow ViewMessageWindowTab) TeamState) -> Getting (TabbedWindow ViewMessageWindowTab) ChatState (TabbedWindow ViewMessageWindowTab) forall b c a. (b -> c) -> (a -> b) -> a -> c .(Maybe (Message, TabbedWindow ViewMessageWindowTab) -> Const (TabbedWindow ViewMessageWindowTab) (Maybe (Message, TabbedWindow ViewMessageWindowTab))) -> TeamState -> Const (TabbedWindow ViewMessageWindowTab) TeamState Lens' TeamState (Maybe (Message, TabbedWindow ViewMessageWindowTab)) tsViewedMessage((Maybe (Message, TabbedWindow ViewMessageWindowTab) -> Const (TabbedWindow ViewMessageWindowTab) (Maybe (Message, TabbedWindow ViewMessageWindowTab))) -> TeamState -> Const (TabbedWindow ViewMessageWindowTab) TeamState) -> ((TabbedWindow ViewMessageWindowTab -> Const (TabbedWindow ViewMessageWindowTab) (TabbedWindow ViewMessageWindowTab)) -> Maybe (Message, TabbedWindow ViewMessageWindowTab) -> Const (TabbedWindow ViewMessageWindowTab) (Maybe (Message, TabbedWindow ViewMessageWindowTab))) -> (TabbedWindow ViewMessageWindowTab -> Const (TabbedWindow ViewMessageWindowTab) (TabbedWindow ViewMessageWindowTab)) -> TeamState -> Const (TabbedWindow ViewMessageWindowTab) TeamState forall b c a. (b -> c) -> (a -> b) -> a -> c .Traversal (Maybe (Message, TabbedWindow ViewMessageWindowTab)) (Maybe (Message, TabbedWindow ViewMessageWindowTab)) (Message, TabbedWindow ViewMessageWindowTab) (Message, TabbedWindow ViewMessageWindowTab) -> Lens (Maybe (Message, TabbedWindow ViewMessageWindowTab)) (Maybe (Message, TabbedWindow ViewMessageWindowTab)) (Message, TabbedWindow ViewMessageWindowTab) (Message, TabbedWindow ViewMessageWindowTab) forall s t a. HasCallStack => Traversal s t a a -> Lens s t a a singular forall a a'. Traversal (Maybe a) (Maybe a') a a' Traversal (Maybe (Message, TabbedWindow ViewMessageWindowTab)) (Maybe (Message, TabbedWindow ViewMessageWindowTab)) (Message, TabbedWindow ViewMessageWindowTab) (Message, TabbedWindow ViewMessageWindowTab) _Just(((Message, TabbedWindow ViewMessageWindowTab) -> Const (TabbedWindow ViewMessageWindowTab) (Message, TabbedWindow ViewMessageWindowTab)) -> Maybe (Message, TabbedWindow ViewMessageWindowTab) -> Const (TabbedWindow ViewMessageWindowTab) (Maybe (Message, TabbedWindow ViewMessageWindowTab))) -> ((TabbedWindow ViewMessageWindowTab -> Const (TabbedWindow ViewMessageWindowTab) (TabbedWindow ViewMessageWindowTab)) -> (Message, TabbedWindow ViewMessageWindowTab) -> Const (TabbedWindow ViewMessageWindowTab) (Message, TabbedWindow ViewMessageWindowTab)) -> (TabbedWindow ViewMessageWindowTab -> Const (TabbedWindow ViewMessageWindowTab) (TabbedWindow ViewMessageWindowTab)) -> Maybe (Message, TabbedWindow ViewMessageWindowTab) -> Const (TabbedWindow ViewMessageWindowTab) (Maybe (Message, TabbedWindow ViewMessageWindowTab)) forall b c a. (b -> c) -> (a -> b) -> a -> c .(TabbedWindow ViewMessageWindowTab -> Const (TabbedWindow ViewMessageWindowTab) (TabbedWindow ViewMessageWindowTab)) -> (Message, TabbedWindow ViewMessageWindowTab) -> Const (TabbedWindow ViewMessageWindowTab) (Message, TabbedWindow ViewMessageWindowTab) forall s t a b. Field2 s t a b => Lens s t a b _2