diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e8a77bc11a..64124a9a65 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -62,6 +62,7 @@ "svelte-infinite-loading": "^1.4.0", "svelte-tiny-virtual-list": "^2.0.5", "tailwind-merge": "^1.13.2", + "textarea-caret": "^3.1.0", "vscode": "npm:@codingame/monaco-vscode-api@~11.1.2", "vscode-languageclient": "~9.0.1", "vscode-uri": "~3.0.8", @@ -11881,6 +11882,12 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/textarea-caret": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/textarea-caret/-/textarea-caret-3.1.0.tgz", + "integrity": "sha512-cXAvzO9pP5CGa6NKx0WYHl+8CHKZs8byMkt3PCJBCmq2a34YA9pO1NrQET5pzeqnBjBdToF5No4rrmkDUgQC2Q==", + "license": "MIT" + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 2580cd35f0..ab203c2b47 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -138,6 +138,7 @@ "svelte-infinite-loading": "^1.4.0", "svelte-tiny-virtual-list": "^2.0.5", "tailwind-merge": "^1.13.2", + "textarea-caret": "^3.1.0", "vscode": "npm:@codingame/monaco-vscode-api@~11.1.2", "vscode-languageclient": "~9.0.1", "vscode-uri": "~3.0.8", diff --git a/frontend/src/lib/components/copilot/chat/AIChat.svelte b/frontend/src/lib/components/copilot/chat/AIChat.svelte index d27077d989..848dd77f9f 100644 --- a/frontend/src/lib/components/copilot/chat/AIChat.svelte +++ b/frontend/src/lib/components/copilot/chat/AIChat.svelte @@ -1,5 +1,12 @@
@@ -188,97 +196,74 @@ > -
- {#if availableContext.filter((c) => !selectedContext.find((sc) => sc.type === c.type)).length === 0} -
No available context
- {:else} - {#each availableContext as element} - {#if !selectedContext.find((c) => c.type === element.type)} - - {/if} - {/each} - {/if} -
+ { + addContextToSelection(element) + close() + }} + />
{#each selectedContext as element} - {@const contextElement = availableContext.find((c) => c.type === element.type)} + {@const contextElement = availableContext.find( + (c) => c.type === element.type && c.title === element.title + )} {#if contextElement} { - selectedContext = selectedContext.filter((c) => c.type !== element.type) + selectedContext = selectedContext.filter( + (c) => c.type !== element.type || c.title !== element.title + ) }} /> {/if} {/each}
-
-