fix: create store instance for every revue flow instance

This commit is contained in:
Braks
2021-07-11 09:32:51 +02:00
parent 041fe114ef
commit ec45cd74e9
6 changed files with 36 additions and 26 deletions
-1
View File
@@ -34,7 +34,6 @@ export function getHandlePosition(position: Position, node: Node, handle: any |
const width = handle?.width || node.__rf.width;
const height = handle?.height || node.__rf.height;
console.log(handle?.x, handle?.y);
switch (position) {
case Position.Top:
return {
+21 -7
View File
@@ -1,4 +1,14 @@
import { computed, CSSProperties, defineComponent, HTMLAttributes, onBeforeUnmount, onUpdated, PropType } from 'vue';
import {
computed,
CSSProperties,
defineComponent,
HTMLAttributes,
onBeforeUnmount,
onMounted,
onUpdated,
PropType,
watch
} from 'vue';
import GraphView from '../GraphView';
import DefaultNode from '../../components/Nodes/DefaultNode';
import InputNode from '../../components/Nodes/InputNode';
@@ -29,7 +39,8 @@ import {
} from '../../types';
import '../../style.css';
import '../../theme-default.css';
import store from '../../store';
import { initialState } from '../../store';
import configureStore from '../../store/configure-store';
const defaultNodeTypes = {
input: InputNode,
@@ -452,14 +463,17 @@ const RevueFlow = defineComponent({
}
},
setup(props, { slots }) {
const pinia = store();
pinia.setElements(props.elements);
const store = configureStore(initialState)();
watch(props.elements, () => store.setElements(props.elements));
onUpdated(() => {
pinia.setElements(props.elements);
store.setElements(props.elements);
});
onMounted(() => {
store.setElements(props.elements);
});
onBeforeUnmount(() => {
pinia.setElements([]);
store.$reset();
store.setElements([]);
});
const nodeTypesParsed = computed(() => props.nodeTypes && createNodeTypes(props.nodeTypes));