+
Unplanned
{tasks
.filter((task) => task.employeeId.length === 0)
diff --git a/src/example/task-card.tsx b/src/example/task-card.tsx
index 7c513cf..53eb446 100644
--- a/src/example/task-card.tsx
+++ b/src/example/task-card.tsx
@@ -15,9 +15,9 @@ export const employees: Array<{
id: string;
name: string;
}> = [
- { id: "1", name: "Mikkel" },
- { id: "2", name: "Lars" },
- { id: "3", name: "Andri" },
+ { id: "1", name: "Zero Cool" },
+ { id: "2", name: "Acid Burn" },
+ { id: "3", name: "Cerialkiller" },
];
export const days = ["2024-01-01", "2024-01-02", "2024-01-03", "2024-01-04", "2024-01-05", "2024-01-06", "2024-01-07"];
diff --git a/src/example/use-canhover.ts b/src/example/use-canhover.ts
new file mode 100644
index 0000000..ac09427
--- /dev/null
+++ b/src/example/use-canhover.ts
@@ -0,0 +1,21 @@
+import { useEffect, useState } from "react";
+
+export const useMediaQuery = (query: string) => {
+ const [matches, setMatches] = useState(false);
+
+ useEffect(() => {
+ const media = window.matchMedia(query);
+ if (media.matches !== matches) {
+ setMatches(media.matches);
+ }
+ const listener = () => setMatches(media.matches);
+ window.addEventListener("resize", listener);
+ return () => window.removeEventListener("resize", listener);
+ }, [matches, query]);
+
+ return matches;
+};
+
+export function useCanHover(): boolean | undefined {
+ return useMediaQuery("(hover: hover)");
+}
diff --git a/src/tiny-dnd/dragable.tsx b/src/tiny-dnd/dragable.tsx
index 46b8a5c..bd06e00 100644
--- a/src/tiny-dnd/dragable.tsx
+++ b/src/tiny-dnd/dragable.tsx
@@ -1,3 +1,4 @@
+import { useCanHover } from "@/example/use-canhover";
import { Slot } from "@radix-ui/react-slot";
import { ReactNode, useId, useRef } from "react";
import { createRoot } from "react-dom/client";
@@ -37,6 +38,7 @@ export function Dragable({
const id = useId();
const Comp = asChild ? Slot : "div";
const ref = useRef(null); // Used by the slot
+ const canHover = useCanHover();
function isSelf(e: React.DragEvent) {
if (!ref.current) return false;
@@ -92,7 +94,7 @@ export function Dragable({
e.dataTransfer.effectAllowed = "move";
- if (renderDragLayer) {
+ if (renderDragLayer && canHover) {
/** This is the craziest hack I've ever made! */
const el = document.createElement("div");
const root = createRoot(el!);