-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathactions.js
71 lines (63 loc) · 2.36 KB
/
actions.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { createAction } from 'redux-act'
import { createActionWithMetaArgs } from '../utils'
import { reuseOrGenerateItemId } from './utils'
// Actions processed by the canvas reducer
export let createItem = function ({docId, props}) {
// We use a thunk here rather than putting this logic in the reducer, solely
// to be able to return the chosen itemId to the caller. TODO fix Redux..?
return function(dispatch, getState) {
let state = getState().canvas // XXX non-modular: We'd want to get state.canvas from getState().
let itemId = reuseOrGenerateItemId(state, {docId})
dispatch(createItemWithId({itemId, docId, props}))
return itemId
}
}
export let createItemWithId = createAction()
export let changeDoc = createAction()
export let centerItem = createActionWithMetaArgs({
currentView: getCurrentView,
})
export let centerDocWithFriends = createActionWithMetaArgs({
currentView: getCurrentView,
})
export let removeAllItems = createAction()
export let showItemFriends = createAction()
export let hideEdge = createAction()
export let showEdge = createAction()
export let hideItem = createAction()
export let updateWindowSize = createActionWithMetaArgs({
currentView: getCurrentView,
})
export let relocateItem = createActionWithMetaArgs({
currentView: getCurrentView,
})
export let resizeItem = createAction()
export let setItemRatio = createAction()
export let scaleItem = createAction()
export let expandItem = createActionWithMetaArgs({
currentView: getCurrentView,
})
export let unexpand = createAction()
export let setItemDragged = createAction()
export let handleDragEnter = createAction()
export let handleDragLeave = createAction()
export let focusItem = createAction()
export let unfocusItem = createAction()
export let unfocus = createAction()
export let setProps = createAction()
// Actions not listened to by the canvas module itself
export let signalItemTapped = createAction()
export let signalItemDraggedOut = createAction()
export let signalDropOnCanvas = createAction()
export let signalCanvasTapped = createAction()
export let signalEdgeTapped = createAction()
export let signalReceivedDrop = createAction()
export let signalResetCanvas = createAction()
export let signalEscape = createAction()
// Utils
function getCurrentView() {
return {
scrollX: window.scrollX,
scrollY: window.scrollY,
}
}