Browse Source

Fix: Correct path handling for dragged files on Windows (#2753)

Felix NyxJae 8 months ago
parent
commit
6772306ade
1 changed files with 12 additions and 1 deletions
  1. 12 1
      webview-ui/src/utils/path-mentions.ts

+ 12 - 1
webview-ui/src/utils/path-mentions.ts

@@ -13,7 +13,18 @@
  */
 export function convertToMentionPath(path: string, cwd?: string): string {
 	// Strip file:// protocol if present
-	const pathWithoutProtocol = path.startsWith("file://") ? path.substring(7) : path
+	let pathWithoutProtocol = path.startsWith("file://") ? path.substring(7) : path
+
+	try {
+		pathWithoutProtocol = decodeURIComponent(pathWithoutProtocol)
+		// Fix: Remove leading slash for Windows paths like /d:/...
+		if (pathWithoutProtocol.startsWith("/") && pathWithoutProtocol[2] === ":") {
+			pathWithoutProtocol = pathWithoutProtocol.substring(1)
+		}
+	} catch (e) {
+		// Log error if decoding fails, but continue with the potentially problematic path
+		console.error("Error decoding URI component in convertToMentionPath:", e, pathWithoutProtocol)
+	}
 
 	const normalizedPath = pathWithoutProtocol.replace(/\\/g, "/")
 	let normalizedCwd = cwd ? cwd.replace(/\\/g, "/") : ""