Skip to content

Commit ebd00a2

Browse files
authored
fix: properly shuffle around sortables when draghandle is separate div
1 parent 809014f commit ebd00a2

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

src/create-sortable.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,25 +75,31 @@ const createSortable = (id: Id, data: Record<string, any> = {}): Sortable => {
7575
);
7676
};
7777

78+
const linkTransformUpdates = (element: HTMLElement) => {
79+
createEffect(() => {
80+
const resolvedTransform = transform();
81+
if (!transformsAreEqual(resolvedTransform, noopTransform())) {
82+
const style = transformStyle(transform());
83+
element.style.setProperty("transform", style.transform ?? null);
84+
} else {
85+
element.style.removeProperty("transform");
86+
}
87+
});
88+
};
89+
7890
const sortable = Object.defineProperties(
7991
(element: HTMLElement) => {
8092
draggable(element, () => ({ skipTransform: true }));
8193
droppable(element, () => ({ skipTransform: true }));
82-
83-
createEffect(() => {
84-
const resolvedTransform = transform();
85-
if (!transformsAreEqual(resolvedTransform, noopTransform())) {
86-
const style = transformStyle(transform());
87-
element.style.setProperty("transform", style.transform ?? null);
88-
} else {
89-
element.style.removeProperty("transform");
90-
}
91-
});
94+
linkTransformUpdates(element);
9295
},
9396
{
9497
ref: {
9598
enumerable: true,
96-
value: setNode,
99+
value: (element: HTMLElement) => {
100+
setNode(element);
101+
linkTransformUpdates(element);
102+
},
97103
},
98104
transform: {
99105
enumerable: true,

0 commit comments

Comments
 (0)