packages feed

matterhorn-50200.7.0: src/Draw.hs

{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE PackageImports #-}
module Draw (draw) where

import Prelude ()
import Prelude.MH

import Brick

import Lens.Micro.Platform ( _2, singular, _Just )

import Draw.DeleteChannelConfirm
import Draw.LeaveChannelConfirm
import Draw.Main
import Draw.PostListOverlay
import Draw.ShowHelp
import Draw.UserListOverlay
import Draw.ChannelListOverlay
import Draw.ReactionEmojiListOverlay
import Draw.TabbedWindow
import Draw.ManageAttachments
import Types


draw :: ChatState -> [Widget Name]
draw st =
    case appMode st of
        Main                       -> drawMain True st
        UrlSelect                  -> drawMain True st
        ShowHelp topic _           -> drawShowHelp topic st
        ChannelSelect              -> drawMain True st
        LeaveChannelConfirm        -> drawLeaveChannelConfirm st
        MessageSelect              -> drawMain True st
        MessageSelectDeleteConfirm -> drawMain True st
        DeleteChannelConfirm       -> drawDeleteChannelConfirm st
        PostListOverlay contents   -> drawPostListOverlay contents st
        UserListOverlay            -> drawUserListOverlay st
        ChannelListOverlay         -> drawChannelListOverlay st
        ReactionEmojiListOverlay   -> drawReactionEmojiListOverlay st
        ViewMessage                -> drawTabbedWindow (st^.csViewedMessage.singular _Just._2) st : drawMain False st
        ManageAttachments          -> drawManageAttachments st
        ManageAttachmentsBrowseFiles -> drawManageAttachments st