refactor(userselection): use store for handling updates
This commit is contained in:
Vendored
+12
-12
@@ -4,19 +4,15 @@ export declare const useStoreActions: <Result>(mapActions: (actions: import("eas
|
||||
d3Zoom: import("d3-zoom").ZoomBehavior<Element, unknown> | null;
|
||||
d3Selection: import("d3-selection").Selection<Element, unknown, null, undefined> | null;
|
||||
selection: import("../types").SelectionRect | null;
|
||||
userSelectionRect: import("../types").SelectionRect;
|
||||
connectionPosition: import("../types").XYPosition;
|
||||
onConnect: import("../types").OnConnectFunc;
|
||||
setOnConnect: import("easy-peasy").Action<StoreModel, import("../types").OnConnectFunc>;
|
||||
setNodes: import("easy-peasy").Action<StoreModel, import("../types").Node[]>;
|
||||
setEdges: import("easy-peasy").Action<StoreModel, import("../types").Edge[]>;
|
||||
updateNodeData: import("easy-peasy").Action<StoreModel, {
|
||||
updateNodeDimensions: import("easy-peasy").Action<StoreModel, {
|
||||
id: string;
|
||||
width: number;
|
||||
height: number;
|
||||
handleBounds: {
|
||||
source: import("../types").HandleElement[] | null;
|
||||
target: import("../types").HandleElement[] | null;
|
||||
};
|
||||
nodeElement: HTMLDivElement;
|
||||
}>;
|
||||
updateNodePos: import("easy-peasy").Action<StoreModel, {
|
||||
id: string;
|
||||
@@ -27,7 +23,7 @@ export declare const useStoreActions: <Result>(mapActions: (actions: import("eas
|
||||
isActive: boolean;
|
||||
selection?: import("../types").SelectionRect | undefined;
|
||||
}>;
|
||||
setSelectedElements: import("easy-peasy").Action<StoreModel, import("../types").Node | import("../types").Edge | (import("../types").Node | import("../types").Edge)[]>;
|
||||
setSelectedElements: import("easy-peasy").Action<StoreModel, import("../types").Node | import("../types").Edge | import("../types").Elements>;
|
||||
updateSelection: import("easy-peasy").Action<StoreModel, import("../types").SelectionRect>;
|
||||
updateTransform: import("easy-peasy").Action<StoreModel, {
|
||||
x: number;
|
||||
@@ -46,15 +42,18 @@ export declare const useStoreActions: <Result>(mapActions: (actions: import("eas
|
||||
setConnectionPosition: import("easy-peasy").Action<StoreModel, import("../types").XYPosition>;
|
||||
setConnectionSourceId: import("easy-peasy").Action<StoreModel, string | null>;
|
||||
setInteractive: import("easy-peasy").Action<StoreModel, boolean>;
|
||||
setUserSelection: import("easy-peasy").Action<StoreModel, import("../types").XYPosition>;
|
||||
updateUserSelection: import("easy-peasy").Action<StoreModel, import("../types").XYPosition>;
|
||||
unsetUserSelection: import("easy-peasy").Action<StoreModel, void>;
|
||||
}, "1">) => Result) => Result;
|
||||
export declare const useStoreDispatch: () => import("easy-peasy").Dispatch<StoreModel, import("redux").Action<any>>;
|
||||
export declare const useStoreState: <Result>(mapState: (state: import("easy-peasy").IntermediateStateMapper<{
|
||||
export declare const useStoreState: <Result>(mapState: (state: import("easy-peasy").StateMapper<{
|
||||
width: number;
|
||||
height: number;
|
||||
transform: [number, number, number];
|
||||
transform: import("../types").Transform;
|
||||
nodes: import("../types").Node[];
|
||||
edges: import("../types").Edge[];
|
||||
selectedElements: (import("../types").Node | import("../types").Edge)[];
|
||||
selectedElements: import("../types").Elements;
|
||||
selectedNodesBbox: import("../types").Rect;
|
||||
d3Zoom: import("d3-zoom").ZoomBehavior<Element, unknown> | null;
|
||||
d3Selection: import("d3-selection").Selection<Element, unknown, null, undefined> | null;
|
||||
@@ -62,10 +61,11 @@ export declare const useStoreState: <Result>(mapState: (state: import("easy-peas
|
||||
nodesSelectionActive: boolean;
|
||||
selectionActive: boolean;
|
||||
selection: import("../types").SelectionRect | null;
|
||||
userSelectionRect: import("../types").SelectionRect;
|
||||
connectionSourceId: string | null;
|
||||
connectionPosition: import("../types").XYPosition;
|
||||
snapToGrid: boolean;
|
||||
snapGrid: [number, number];
|
||||
isInteractive: boolean;
|
||||
onConnect: import("../types").OnConnectFunc;
|
||||
}, "1">) => Result, dependencies?: any[] | undefined) => Result;
|
||||
}, "1">) => Result, equalityFn?: ((prev: Result, next: Result) => boolean) | undefined) => Result;
|
||||
|
||||
Vendored
+9
-92
@@ -1,6 +1,6 @@
|
||||
import { Action } from 'easy-peasy';
|
||||
import { Selection as D3Selection, ZoomBehavior } from 'd3';
|
||||
import { ElementId, Elements, Transform, Node, Edge, Rect, Dimensions, XYPosition, OnConnectFunc, SelectionRect, HandleElement } from '../types';
|
||||
import { ElementId, Elements, Transform, Node, Edge, Rect, Dimensions, XYPosition, OnConnectFunc, SelectionRect } from '../types';
|
||||
declare type TransformXYK = {
|
||||
x: number;
|
||||
y: number;
|
||||
@@ -10,14 +10,9 @@ declare type NodePosUpdate = {
|
||||
id: ElementId;
|
||||
pos: XYPosition;
|
||||
};
|
||||
declare type NodeUpdate = {
|
||||
declare type NodeDimensionUpdate = {
|
||||
id: ElementId;
|
||||
width: number;
|
||||
height: number;
|
||||
handleBounds: {
|
||||
source: HandleElement[] | null;
|
||||
target: HandleElement[] | null;
|
||||
};
|
||||
nodeElement: HTMLDivElement;
|
||||
};
|
||||
declare type SelectionUpdate = {
|
||||
isActive: boolean;
|
||||
@@ -45,6 +40,7 @@ export interface StoreModel {
|
||||
nodesSelectionActive: boolean;
|
||||
selectionActive: boolean;
|
||||
selection: SelectionRect | null;
|
||||
userSelectionRect: SelectionRect;
|
||||
connectionSourceId: ElementId | null;
|
||||
connectionPosition: XYPosition;
|
||||
snapToGrid: boolean;
|
||||
@@ -54,7 +50,7 @@ export interface StoreModel {
|
||||
setOnConnect: Action<StoreModel, OnConnectFunc>;
|
||||
setNodes: Action<StoreModel, Node[]>;
|
||||
setEdges: Action<StoreModel, Edge[]>;
|
||||
updateNodeData: Action<StoreModel, NodeUpdate>;
|
||||
updateNodeDimensions: Action<StoreModel, NodeDimensionUpdate>;
|
||||
updateNodePos: Action<StoreModel, NodePosUpdate>;
|
||||
setSelection: Action<StoreModel, boolean>;
|
||||
setNodesSelection: Action<StoreModel, SelectionUpdate>;
|
||||
@@ -67,88 +63,9 @@ export interface StoreModel {
|
||||
setConnectionPosition: Action<StoreModel, XYPosition>;
|
||||
setConnectionSourceId: Action<StoreModel, ElementId | null>;
|
||||
setInteractive: Action<StoreModel, boolean>;
|
||||
setUserSelection: Action<StoreModel, XYPosition>;
|
||||
updateUserSelection: Action<StoreModel, XYPosition>;
|
||||
unsetUserSelection: Action<StoreModel>;
|
||||
}
|
||||
declare const store: {
|
||||
getState: () => import("easy-peasy").IntermediateStateMapper<{
|
||||
width: number;
|
||||
height: number;
|
||||
transform: [number, number, number];
|
||||
nodes: Node[];
|
||||
edges: Edge[];
|
||||
selectedElements: (Node | Edge)[];
|
||||
selectedNodesBbox: Rect;
|
||||
d3Zoom: ZoomBehavior<Element, unknown> | null;
|
||||
d3Selection: D3Selection<Element, unknown, null, undefined> | null;
|
||||
d3Initialised: boolean;
|
||||
nodesSelectionActive: boolean;
|
||||
selectionActive: boolean;
|
||||
selection: SelectionRect | null;
|
||||
connectionSourceId: string | null;
|
||||
connectionPosition: XYPosition;
|
||||
snapToGrid: boolean;
|
||||
snapGrid: [number, number];
|
||||
isInteractive: boolean;
|
||||
onConnect: OnConnectFunc;
|
||||
}, "1">;
|
||||
subscribe: (listener: () => void) => import("redux").Unsubscribe;
|
||||
replaceReducer: (nextReducer: import("redux").Reducer<import("easy-peasy").IntermediateStateMapper<{
|
||||
width: number;
|
||||
height: number;
|
||||
transform: [number, number, number];
|
||||
nodes: Node[];
|
||||
edges: Edge[];
|
||||
selectedElements: (Node | Edge)[];
|
||||
selectedNodesBbox: Rect;
|
||||
d3Zoom: ZoomBehavior<Element, unknown> | null;
|
||||
d3Selection: D3Selection<Element, unknown, null, undefined> | null;
|
||||
d3Initialised: boolean;
|
||||
nodesSelectionActive: boolean;
|
||||
selectionActive: boolean;
|
||||
selection: SelectionRect | null;
|
||||
connectionSourceId: string | null;
|
||||
connectionPosition: XYPosition;
|
||||
snapToGrid: boolean;
|
||||
snapGrid: [number, number];
|
||||
isInteractive: boolean;
|
||||
onConnect: OnConnectFunc;
|
||||
}, "1">, import("redux").AnyAction>) => void;
|
||||
dispatch: import("easy-peasy").Dispatch<StoreModel, import("redux").Action<any>>;
|
||||
addModel: <ModelSlice extends object>(key: string, modelSlice: ModelSlice) => void;
|
||||
clearMockedActions: () => void;
|
||||
getActions: () => import("easy-peasy").ActionMapper<{
|
||||
selectedNodesBbox: Rect;
|
||||
d3Zoom: ZoomBehavior<Element, unknown> | null;
|
||||
d3Selection: D3Selection<Element, unknown, null, undefined> | null;
|
||||
selection: SelectionRect | null;
|
||||
connectionPosition: XYPosition;
|
||||
onConnect: OnConnectFunc;
|
||||
setOnConnect: Action<StoreModel, OnConnectFunc>;
|
||||
setNodes: Action<StoreModel, Node[]>;
|
||||
setEdges: Action<StoreModel, Edge[]>;
|
||||
updateNodeData: Action<StoreModel, NodeUpdate>;
|
||||
updateNodePos: Action<StoreModel, NodePosUpdate>;
|
||||
setSelection: Action<StoreModel, boolean>;
|
||||
setNodesSelection: Action<StoreModel, SelectionUpdate>;
|
||||
setSelectedElements: Action<StoreModel, Node | Edge | (Node | Edge)[]>;
|
||||
updateSelection: Action<StoreModel, SelectionRect>;
|
||||
updateTransform: Action<StoreModel, TransformXYK>;
|
||||
updateSize: Action<StoreModel, Dimensions>;
|
||||
initD3: Action<StoreModel, D3Init>;
|
||||
setSnapGrid: Action<StoreModel, SetSnapGrid>;
|
||||
setConnectionPosition: Action<StoreModel, XYPosition>;
|
||||
setConnectionSourceId: Action<StoreModel, string | null>;
|
||||
setInteractive: Action<StoreModel, boolean>;
|
||||
}, "1">;
|
||||
getListeners: () => import("easy-peasy").ListenerMapper<{
|
||||
selectedNodesBbox: Rect;
|
||||
d3Zoom: ZoomBehavior<Element, unknown> | null;
|
||||
d3Selection: D3Selection<Element, unknown, null, undefined> | null;
|
||||
selection: SelectionRect | null;
|
||||
connectionPosition: XYPosition;
|
||||
onConnect: OnConnectFunc;
|
||||
}, "1">;
|
||||
getMockedActions: () => import("easy-peasy").MockedAction[];
|
||||
reconfigure: <NewStoreModel extends object>(model: NewStoreModel) => void;
|
||||
removeModel: (key: string) => void;
|
||||
};
|
||||
declare const store: import("easy-peasy").Store<StoreModel, import("easy-peasy").EasyPeasyConfig<{}, any>>;
|
||||
export default store;
|
||||
|
||||
Reference in New Issue
Block a user