Commit Graph

2 Commits

Author SHA1 Message Date
Copilot 9bc67032c3
fix: validate coordinates before elementsFromPoint on Firefox mobile (#1992)
Firefox mobile drag events can provide non-finite coordinate values
(`undefined`, `NaN`, `Infinity`) which cause
`document.elementsFromPoint()` to throw: "Argument 1 is not a finite
floating-point value."

**Changes**
- Added `Number.isFinite()` validation in `findProjectIdAtPosition()`
before calling `elementsFromPoint()`
- Returns `null` when coordinates are invalid, gracefully aborting the
drop operation

```typescript
function findProjectIdAtPosition(mouseX: number, mouseY: number): number | null {
	// Validate coordinates are finite numbers (required by elementsFromPoint)
	if (!Number.isFinite(mouseX) || !Number.isFinite(mouseY)) {
		return null
	}

	const elementsUnderMouse = document.elementsFromPoint(mouseX, mouseY)
	// ... rest of implementation
}
```

The caller already handles `null` returns appropriately, treating it as
"no valid drop target found."

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kolaente <13721712+kolaente@users.noreply.github.com>
2025-12-16 23:05:42 +00:00
kolaente 4aae270694
feat(tasks): move tasks between projects with drag and drop (#1945)
Drag and drop tasks between projects from list and kanban views, with cross-project move handling and success notification. With visual drop-target highlighting when hovering a project during a drag.
2025-12-10 18:59:38 +00:00