Skip to content

Commit

Permalink
fix: update props to composable when component updates
Browse files Browse the repository at this point in the history
  • Loading branch information
bcakmakoglu committed Jul 20, 2021
1 parent 05cebc9 commit c89e9f7
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
8 changes: 6 additions & 2 deletions src/components/Draggable.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { h, defineComponent, PropType, isVue3, Ref } from 'vue-demi';
import { h, defineComponent, PropType, isVue3, Ref, onUpdated } from 'vue-demi';
import { DraggableOptions } from '../utils/types';
import useDraggable from '../hooks/useDraggable';
import { templateRef } from '@vueuse/core';
Expand Down Expand Up @@ -87,7 +87,7 @@ const Draggable = defineComponent({
setup(props, { slots, emit }) {
const init = (targets: Ref[]) => {
targets.forEach((target) => {
const { onDrag, onDragStart, onDragStop, onTransformed } = useDraggable(target, props);
const { onDrag, onDragStart, onDragStop, onTransformed, updateState } = useDraggable(target, props);

onDrag((dragEvent) => {
emit('move', dragEvent);
Expand All @@ -104,6 +104,10 @@ const Draggable = defineComponent({
onTransformed((transformEvent) => {
emit('transformed', transformEvent);
});

onUpdated(() => {
updateState(props);
});
});
};

Expand Down
10 changes: 7 additions & 3 deletions src/components/DraggableCore.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { h, defineComponent, PropType, isVue3 } from 'vue-demi';
import {DraggableCoreOptions, DraggableOptions} from '../utils/types';
import { h, defineComponent, PropType, isVue3, onUpdated } from 'vue-demi';
import { DraggableCoreOptions, DraggableOptions } from '../utils/types';
import useDraggableCore from '../hooks/useDraggableCore';
import { templateRef } from '@vueuse/core';

Expand Down Expand Up @@ -55,7 +55,7 @@ const DraggableCore = defineComponent({
setup(props, { slots, emit }) {
const target = templateRef('core-target', null);

const { onDrag, onDragStart, onDragStop } = useDraggableCore(target, props);
const { onDrag, onDragStart, onDragStop, updateState } = useDraggableCore(target, props);

onDrag((dragEvent) => {
emit('move', dragEvent);
Expand All @@ -69,6 +69,10 @@ const DraggableCore = defineComponent({
emit('stop', dragStopEvent);
});

onUpdated(() => {
updateState(props);
});

if (isVue3) {
return () => {
if (slots.default) return slots.default()?.map((node) => h(node, { ref: 'core-target' }));
Expand Down

0 comments on commit c89e9f7

Please sign in to comment.