Add pause feature

This commit is contained in:
Thomas Nordquist
2019-04-03 17:57:19 +02:00
parent 8266a87417
commit 094d795b39
6 changed files with 191 additions and 8 deletions

View File

@@ -7,6 +7,7 @@ export interface TreeState {
tree?: q.Tree<TopicViewModel>
selectedTopic?: q.TreeNode<TopicViewModel>
filter?: string
paused: boolean
}
export type Action = ShowTree | SelectTopic
@@ -14,6 +15,8 @@ export type Action = ShowTree | SelectTopic
export enum ActionTypes {
TREE_SHOW_TREE = 'TREE_SHOW_TREE',
TREE_SELECT_TOPIC = 'TREE_SELECT_TOPIC',
TREE_RESUME_UPDATES = 'TREE_RESUME_UPDATES',
TREE_PAUSE_UPDATES = 'TREE_PAUSE_UPDATES',
}
export interface ShowTree {
@@ -27,11 +30,26 @@ export interface SelectTopic {
selectedTopic?: q.TreeNode<TopicViewModel>
}
const initialState: TreeState = { }
export interface SetPause {
type: ActionTypes.TREE_PAUSE_UPDATES | ActionTypes.TREE_RESUME_UPDATES
}
const initialState: TreeState = {
paused: false,
}
const setPaused = (pause: boolean) => (state: TreeState, action: ShowTree) => {
return {
...state,
paused: pause,
}
}
export const treeReducer = createReducer(initialState, {
TREE_SHOW_TREE: showTree,
TREE_SELECT_TOPIC: selectTopic,
TREE_PAUSE_UPDATES: setPaused(true),
TREE_RESUME_UPDATES: setPaused(false),
})
function showTree(state: TreeState, action: ShowTree) {