{-# 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.SaveAttachmentWindow 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 SaveAttachmentWindow LinkChoice _ -> ChatState -> Widget Name drawSaveAttachmentWindow 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