From 31080d34ff069af5ee1340dd2674eef8ff3f595c Mon Sep 17 00:00:00 2001 From: Lucas Said Date: Mon, 3 Jul 2023 15:15:53 -0300 Subject: [PATCH 1/4] Impementing Pointer Lock API for Number input --- packages/leva/src/components/Number/Number.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/leva/src/components/Number/Number.tsx b/packages/leva/src/components/Number/Number.tsx index 2bed8fbb..02017492 100644 --- a/packages/leva/src/components/Number/Number.tsx +++ b/packages/leva/src/components/Number/Number.tsx @@ -18,7 +18,13 @@ type DraggableLabelProps = { const DraggableLabel = React.memo(({ label, onUpdate, step, innerLabelTrim }: DraggableLabelProps) => { const [dragging, setDragging] = useState(false) - const bind = useDrag(({ active, delta: [dx], event, memo = 0 }) => { + const bind = useDrag(({ active, delta: [dx], event, memo = 0, first, last, target }) => { + if (first) { + ;(target as HTMLElement).requestPointerLock() + } + if (last) { + document.exitPointerLock() + } setDragging(active) memo += dx / 2 if (Math.abs(memo) >= 1) { From 4963af6a7d2e60c3c0f3b7936bad0df59b4bb4d1 Mon Sep 17 00:00:00 2001 From: Lucas Said Date: Mon, 3 Jul 2023 15:28:22 -0300 Subject: [PATCH 2/4] removed extra semicolon --- packages/leva/src/components/Number/Number.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/leva/src/components/Number/Number.tsx b/packages/leva/src/components/Number/Number.tsx index 02017492..9c08d94d 100644 --- a/packages/leva/src/components/Number/Number.tsx +++ b/packages/leva/src/components/Number/Number.tsx @@ -20,7 +20,8 @@ const DraggableLabel = React.memo(({ label, onUpdate, step, innerLabelTrim }: Dr const [dragging, setDragging] = useState(false) const bind = useDrag(({ active, delta: [dx], event, memo = 0, first, last, target }) => { if (first) { - ;(target as HTMLElement).requestPointerLock() + const label = target as HTMLElement + label.requestPointerLock() } if (last) { document.exitPointerLock() From 35d28c8853af3c945700bc6ffe6cab8e614dc595 Mon Sep 17 00:00:00 2001 From: Lucas Said Date: Mon, 3 Jul 2023 16:34:41 -0300 Subject: [PATCH 3/4] version bump --- packages/leva/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/leva/package.json b/packages/leva/package.json index ec35a3fc..deb7266a 100644 --- a/packages/leva/package.json +++ b/packages/leva/package.json @@ -1,6 +1,6 @@ { "name": "leva", - "version": "0.9.35", + "version": "0.9.36", "main": "dist/leva.cjs.js", "module": "dist/leva.esm.js", "types": "dist/leva.cjs.d.ts", From 1eb0df8adc0034f37bf17b0a243fe5783fc3f618 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Wed, 22 Jan 2025 16:51:14 -0600 Subject: [PATCH 4/4] chore: add changeset --- .changeset/clever-experts-perform.md | 5 +++++ packages/leva/package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/clever-experts-perform.md diff --git a/.changeset/clever-experts-perform.md b/.changeset/clever-experts-perform.md new file mode 100644 index 00000000..6ef4525c --- /dev/null +++ b/.changeset/clever-experts-perform.md @@ -0,0 +1,5 @@ +--- +'leva': minor +--- + +feat: use Pointer Lock API for Number input diff --git a/packages/leva/package.json b/packages/leva/package.json index deb7266a..ec35a3fc 100644 --- a/packages/leva/package.json +++ b/packages/leva/package.json @@ -1,6 +1,6 @@ { "name": "leva", - "version": "0.9.36", + "version": "0.9.35", "main": "dist/leva.cjs.js", "module": "dist/leva.esm.js", "types": "dist/leva.cjs.d.ts",