matterhorn-50200.13.0: src/Matterhorn/Draw.hs
{-# 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 st =
case st^.csCurrentTeam.tsMode of
Main -> mainLayers
UrlSelect -> mainLayers
ChannelSelect -> mainLayers
MessageSelect -> mainLayers
MessageSelectDeleteConfirm -> mainLayers
ShowHelp topic _ -> drawShowHelp topic st
ThemeListOverlay -> drawThemeListOverlay st : mainLayers
LeaveChannelConfirm -> drawLeaveChannelConfirm st : mainLayersMonochrome
DeleteChannelConfirm -> drawDeleteChannelConfirm st : mainLayersMonochrome
PostListOverlay contents -> drawPostListOverlay contents st : mainLayersMonochrome
UserListOverlay -> drawUserListOverlay st : mainLayersMonochrome
ChannelListOverlay -> drawChannelListOverlay st : mainLayersMonochrome
ReactionEmojiListOverlay -> drawReactionEmojiListOverlay st : mainLayersMonochrome
ViewMessage -> drawTabbedWindow messageViewWindow st : mainLayersMonochrome
ManageAttachments -> drawManageAttachments st : mainLayersMonochrome
ManageAttachmentsBrowseFiles -> drawManageAttachments st : mainLayersMonochrome
EditNotifyPrefs -> drawNotifyPrefs st : mainLayersMonochrome
ChannelTopicWindow -> drawChannelTopicWindow st : mainLayersMonochrome
SaveAttachmentWindow _ -> drawSaveAttachmentWindow st : mainLayersMonochrome
where
mainLayers = drawMain True st
mainLayersMonochrome = drawMain False st
messageViewWindow = st^.csCurrentTeam.tsViewedMessage.singular _Just._2