packages feed

taskell-1.9.3.0: src/Taskell/Events/Actions/Search.hs

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 (EvKey KEsc _) s = clearSearch =<< normalMode s
event (EvKey KEnter _) s = normalMode s
event e s =
    case s ^. mode of
        Search -> appendSearch (F.event e) s
        _      -> pure s