From 9fb2e2485d5463c1c0d7523188dcdb28dd9eb09d Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Fri, 28 Nov 2025 20:01:46 -0800 Subject: [PATCH] fix: Phase 7c - fix Touch/drag-drop types (32 -> 28 errors) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed TypeScript errors where custom drag data was being stored on the native Touch type, which doesn't allow extension. The issue: `currentTouch` was typed as `Touch | null` but the code was trying to store custom properties (item, source, type) on it for pending drag operations initiated by mouse pointer events. The fix: Created a new `PendingDragData` interface to properly type the custom drag data being stored for mouse events. Changes: - src/lib/composables/drag-drop.svelte.ts: - Added PendingDragData interface with item, source, type - Changed TouchState.currentTouch from `Touch | null` to `PendingDragData | null` - This allows storing pending drag data without conflicting with native Touch type Result: 32 → 28 errors (-4) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/lib/composables/drag-drop.svelte.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lib/composables/drag-drop.svelte.ts b/src/lib/composables/drag-drop.svelte.ts index 2bf709d1..9c57ec84 100644 --- a/src/lib/composables/drag-drop.svelte.ts +++ b/src/lib/composables/drag-drop.svelte.ts @@ -42,13 +42,19 @@ export interface DragOperation { retryCount: number } +export interface PendingDragData { + item: GridItem + source: Position + type: GridItemType +} + export interface TouchState { touchStartPos: { x: number; y: number } | null touchStartTime: number longPressTimer: number | null touchThreshold: number longPressDuration: number - currentTouch: Touch | null + currentTouch: PendingDragData | null } export interface DragDropState {