module Taskell.Events.Actions.Modal ( event ) where import ClassyPrelude import Control.Lens ((^.)) import Graphics.Vty.Input.Events import Taskell.Events.State.Types (Stateful, mode) import Taskell.Events.State.Types.Mode (ModalType (..), Mode (Modal)) import qualified Taskell.Events.Actions.Modal.Detail as Detail import qualified Taskell.Events.Actions.Modal.Due as Due import qualified Taskell.Events.Actions.Modal.Help as Help import qualified Taskell.Events.Actions.Modal.MoveTo as MoveTo event :: Event -> Stateful event :: Event -> Stateful event Event e State s = case State s State -> Getting Mode State Mode -> Mode forall s a. s -> Getting a s a -> a ^. Getting Mode State Mode Lens' State Mode mode of Modal ModalType Help -> Event -> Stateful Help.event Event e State s Modal Detail {} -> Event -> Stateful Detail.event Event e State s Modal ModalType MoveTo -> Event -> Stateful MoveTo.event Event e State s Modal Due {} -> Event -> Stateful Due.event Event e State s Mode _ -> Stateful forall (f :: * -> *) a. Applicative f => a -> f a pure State s