Clean up behaviors
This commit is contained in:
parent
55e12992b3
commit
3f88a247ce
3 changed files with 28 additions and 39 deletions
|
|
@ -4,14 +4,13 @@ module TaskMachine.UI
|
||||||
, loadTasks
|
, loadTasks
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import qualified Brick as B
|
import qualified Brick as B
|
||||||
import qualified Brick.Themes as B
|
import qualified Brick.Themes as B
|
||||||
import qualified Data.Vector as V
|
import qualified Data.Vector as V
|
||||||
import qualified Graphics.Vty.Input.Events as VTY
|
import qualified Graphics.Vty.Input.Events as VTY
|
||||||
|
|
||||||
import TaskMachine.Options
|
import TaskMachine.Options
|
||||||
import TaskMachine.UI.Behaviors.TaskEdit
|
import TaskMachine.UI.Behaviors
|
||||||
import TaskMachine.UI.Behaviors.TaskList
|
|
||||||
import TaskMachine.UI.TaskList
|
import TaskMachine.UI.TaskList
|
||||||
import TaskMachine.UI.Types
|
import TaskMachine.UI.Types
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
module TaskMachine.UI.Behaviors.TaskEdit
|
module TaskMachine.UI.Behaviors
|
||||||
( taskEditBehavior
|
( taskListBehavior
|
||||||
|
, taskEditBehavior
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import qualified Brick as B
|
import qualified Brick as B
|
||||||
|
|
@ -13,6 +14,14 @@ import TaskMachine.Task
|
||||||
import TaskMachine.UI.TaskList
|
import TaskMachine.UI.TaskList
|
||||||
import TaskMachine.UI.Types
|
import TaskMachine.UI.Types
|
||||||
|
|
||||||
|
startEdit :: UIState -> UIState
|
||||||
|
startEdit s =
|
||||||
|
case taskListSelectedElement (tasks s) of
|
||||||
|
Nothing -> undefined -- TODO: Add popup notification
|
||||||
|
Just t ->
|
||||||
|
let edit = B.editor RTaskEdit (Just 1) (formatTask t)
|
||||||
|
in s{taskEdit=Just edit}
|
||||||
|
|
||||||
finishEdit :: B.Editor String RName -> UIState -> UIState
|
finishEdit :: B.Editor String RName -> UIState -> UIState
|
||||||
finishEdit edit s =
|
finishEdit edit s =
|
||||||
let editedText = unlines $ B.getEditContents edit
|
let editedText = unlines $ B.getEditContents edit
|
||||||
|
|
@ -33,3 +42,15 @@ taskEditBehavior edit s (VTY.EvKey VTY.KEnter []) = do
|
||||||
taskEditBehavior edit s e = do
|
taskEditBehavior edit s e = do
|
||||||
newEdit <- B.handleEditorEvent e edit
|
newEdit <- B.handleEditorEvent e edit
|
||||||
B.continue s{taskEdit=Just newEdit}
|
B.continue s{taskEdit=Just newEdit}
|
||||||
|
|
||||||
|
taskListBehavior :: UIState -> VTY.Event -> NewState
|
||||||
|
-- Mark/unmark a task as completed
|
||||||
|
taskListBehavior s (VTY.EvKey (VTY.KChar 'x') []) = undefined s
|
||||||
|
-- Delete tasks
|
||||||
|
taskListBehavior s (VTY.EvKey (VTY.KChar 'd') []) = undefined s
|
||||||
|
-- Start editing a new task
|
||||||
|
taskListBehavior s (VTY.EvKey (VTY.KChar 'e') []) = B.continue (startEdit s)
|
||||||
|
-- Update the task list (scroll etc.)
|
||||||
|
taskListBehavior s e = do
|
||||||
|
newTasks <- updateTaskList e (tasks s)
|
||||||
|
B.continue s{tasks=newTasks}
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
module TaskMachine.UI.Behaviors.TaskList
|
|
||||||
( taskListBehavior
|
|
||||||
) where
|
|
||||||
|
|
||||||
import qualified Brick as B
|
|
||||||
import qualified Brick.Widgets.Edit as B
|
|
||||||
import qualified Graphics.Vty as VTY
|
|
||||||
|
|
||||||
import TaskMachine.Task
|
|
||||||
import TaskMachine.UI.TaskList
|
|
||||||
import TaskMachine.UI.Types
|
|
||||||
|
|
||||||
startEdit :: UIState -> UIState
|
|
||||||
startEdit s =
|
|
||||||
case taskListSelectedElement (tasks s) of
|
|
||||||
Nothing -> undefined -- TODO: Add popup notification
|
|
||||||
Just t ->
|
|
||||||
let edit = B.editor RTaskEdit (Just 1) (formatTask t)
|
|
||||||
in s{taskEdit=Just edit}
|
|
||||||
|
|
||||||
taskListBehavior :: UIState -> VTY.Event -> NewState
|
|
||||||
-- Mark/unmark a task as completed
|
|
||||||
taskListBehavior s (VTY.EvKey (VTY.KChar 'x') []) = undefined s
|
|
||||||
-- Delete tasks
|
|
||||||
taskListBehavior s (VTY.EvKey (VTY.KChar 'd') []) = undefined s
|
|
||||||
-- Start editing a new task
|
|
||||||
taskListBehavior s (VTY.EvKey (VTY.KChar 'e') []) = B.continue (startEdit s)
|
|
||||||
-- Update the task list (scroll etc.)
|
|
||||||
taskListBehavior s e = do
|
|
||||||
newTasks <- updateTaskList e (tasks s)
|
|
||||||
B.continue s{tasks=newTasks}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue