From 9368d058f2cabb93f152411c21bca0ef6ef183ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Wed, 6 Aug 2025 12:10:31 -0500 Subject: [PATCH] fix: mobile cursor --- docs/changelogs/1.27.14.md | 5 +++++ package.json | 2 +- .../components/Cursor/index.tsx | 12 ++++++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 docs/changelogs/1.27.14.md diff --git a/docs/changelogs/1.27.14.md b/docs/changelogs/1.27.14.md new file mode 100644 index 000000000..a2856f0ee --- /dev/null +++ b/docs/changelogs/1.27.14.md @@ -0,0 +1,5 @@ +# BlitzKit 1.27.14 + +## Fixes + +- Optimized the rendering of the shells in the Tankopedia search diff --git a/package.json b/package.json index 96ce8518f..9a2e054de 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "blitzkit", "private": true, - "version": "1.27.13", + "version": "1.27.14", "description": "🎉 Tools for everything World of Tanks Blitz", "type": "module", "types": "./types.d.ts", diff --git a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/AssaultRangesVisualizer/components/Cursor/index.tsx b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/AssaultRangesVisualizer/components/Cursor/index.tsx index 21f07e417..7c67c5017 100644 --- a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/AssaultRangesVisualizer/components/Cursor/index.tsx +++ b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/AssaultRangesVisualizer/components/Cursor/index.tsx @@ -25,25 +25,30 @@ export function AssaultCursor({ maxDistance, maxFakeDistance }: Props) { useEffect(() => { let localX = x; + let lastX = 0; function handlePointerDown(event: PointerEvent) { event.preventDefault(); + lastX = event.clientX; + window.addEventListener('pointermove', handlePointerMove); window.addEventListener('pointerup', handlePointerUp); } function handlePointerMove(event: PointerEvent) { event.preventDefault(); - + const parent = cursor.current?.parentElement; if (!parent) return; const width = parent.clientWidth; + const movementX = event.clientX - lastX; + lastX = event.clientX; setX((state) => { - localX = clamp(state + event.movementX / width, 0, 1); + localX = clamp(state + movementX / width, 0, 1); return localX; }); } @@ -62,6 +67,8 @@ export function AssaultCursor({ maxDistance, maxFakeDistance }: Props) { return () => { cursor.current?.removeEventListener('pointerdown', handlePointerDown); + window.removeEventListener('pointermove', handlePointerMove); + window.removeEventListener('pointerup', handlePointerUp); }; }, []); @@ -75,6 +82,7 @@ export function AssaultCursor({ maxDistance, maxFakeDistance }: Props) { width="2pt" id="assault-cursor" style={{ + touchAction: 'none', transform: 'translateX(-50%)', backgroundColor: Var('accent-11'), }}