module Taskell.Events.Actions.Search ( event ) where import ClassyPrelude import Control.Lens ((^.)) import Graphics.Vty.Input.Events import Taskell.Events.State import Taskell.Events.State.Types (Stateful, mode) import Taskell.Events.State.Types.Mode (Mode (Search)) import qualified Taskell.UI.Draw.Field as F (event) event :: Event -> Stateful event :: Event -> Stateful event (EvKey Key KEsc [Modifier] _) State s = Stateful clearSearch Stateful -> Maybe State -> Maybe State forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Stateful normalMode State s event (EvKey Key KEnter [Modifier] _) State s = Stateful normalMode State s 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 Mode Search -> (Field -> Field) -> Stateful appendSearch (Event -> Field -> Field F.event Event e) State s Mode _ -> Stateful forall (f :: * -> *) a. Applicative f => a -> f a pure State s