module Taskell.Events.Actions.Modal.MoveTo
    ( event
    ) where

import ClassyPrelude
import Graphics.Vty.Input.Events
import Taskell.Events.State
import Taskell.Events.State.Types (Stateful)

event :: Event -> Stateful
event :: Event -> Stateful
event (EvKey Key
KEsc [Modifier]
_)      = Stateful
normalMode
event (EvKey Key
KEnter [Modifier]
_)    = Stateful
normalMode
event (EvKey (KChar Char
c) [Modifier]
_) = (Stateful
normalMode Stateful -> Maybe State -> Maybe State
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) (Maybe State -> Maybe State) -> Stateful -> Stateful
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Stateful
write Stateful -> Maybe State -> Maybe State
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) (Maybe State -> Maybe State) -> Stateful -> Stateful
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Char -> Stateful
moveTo Char
c Stateful -> Maybe State -> Maybe State
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<) (Maybe State -> Maybe State) -> Stateful -> Stateful
forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Stateful
store
event Event
_                   = Stateful
forall (f :: * -> *) a. Applicative f => a -> f a
pure