Skip to content

Commit e72861d

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

3 files changed

Lines changed: 26 additions & 12 deletions

File tree

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@
5757
"@release-it/keep-a-changelog": "^3.1.0",
5858
"prettier": "^2.7.1",
5959
"release-it": "^15.5.0",
60+
"solid-js": "^1.5",
6061
"tsup": "^6.5.0",
6162
"tsup-preset-solid": "^0.1.4",
62-
"solid-js": "^1.5",
6363
"typescript": "^4.8.4"
6464
},
6565
"publishConfig": {
@@ -69,5 +69,8 @@
6969
"engines": {
7070
"node": ">=18.0.0",
7171
"pnpm": ">=8.6.0"
72+
},
73+
"dependencies": {
74+
"example-with-tailwindcss": "link:/Users/chays/code/crochet-kit"
7275
}
7376
}

pnpm-lock.yaml

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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)