{-# LANGUAGE NoImplicitPrelude #-} module Events.Actions.Modal ( event ) where import ClassyPrelude import Control.Lens ((^.)) import Events.State.Types (Stateful, mode) import Events.State.Types.Mode (ModalType (..), Mode (Modal)) import Graphics.Vty.Input.Events import qualified Events.Actions.Modal.Detail as Detail import qualified Events.Actions.Modal.Due as Due import qualified Events.Actions.Modal.Help as Help import qualified Events.Actions.Modal.MoveTo as MoveTo event :: Event -> Stateful event e s = case s ^. mode of Modal Help -> Help.event e s Modal Detail {} -> Detail.event e s Modal MoveTo -> MoveTo.event e s Modal Due {} -> Due.event e s _ -> pure s