tart-0.1: programs/Events/AskForSaveFilename.hs
module Events.AskForSaveFilename
( handleAskForSaveFilenameEvent
)
where
import qualified Graphics.Vty as V
import Lens.Micro.Platform
import qualified Data.Text as T
import Brick
import Brick.Widgets.Edit
import Types
import State
handleAskForSaveFilenameEvent :: AppState -> BrickEvent Name e -> EventM Name (Next AppState)
handleAskForSaveFilenameEvent s (VtyEvent (V.EvKey V.KEsc [])) =
halt s
handleAskForSaveFilenameEvent s (VtyEvent (V.EvKey V.KEnter [])) = do
let [fn] = getEditContents (s^.askToSaveFilenameEdit)
if T.null fn
then halt s
else quit False $ s & canvasPath .~ Just (T.unpack fn)
handleAskForSaveFilenameEvent s (VtyEvent e) =
continue =<< handleEventLensed s askToSaveFilenameEdit handleEditorEvent e
handleAskForSaveFilenameEvent s _ =
continue s