Skip to content

Commit 7bd3254

Browse files
committed
fix(amazonq): comments
1 parent de82c94 commit 7bd3254

File tree

2 files changed

+24
-48
lines changed

2 files changed

+24
-48
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"type" : "bugfix",
3-
"description" : "Fix the issue that sometime image added via drag & drop are incorrectly routing to pinned contexts and drag overlay is not rendered"
3+
"description" : "Fix the issue that sometime images added via drag & drop are incorrectly routed to pinned context"
44
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQPanel.kt

Lines changed: 23 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -141,37 +141,13 @@ class AmazonQPanel(val project: Project, private val scope: CoroutineScope) : Di
141141
// and let the native handling the drop event, and update the UI through JS bridge.
142142
val dropTarget = object : DropTarget() {
143143
override fun dragEnter(dtde: DropTargetDragEvent) {
144-
try {
145-
browserInstance.jcefBrowser.cefBrowser.executeJavaScript(
146-
"window.setDragAndDropVisible('true')",
147-
browserInstance.jcefBrowser.cefBrowser.url,
148-
0
149-
)
150-
} catch (e: Exception) {
151-
LOG.error { "Failed to handle dragEnter: ${e.message}" }
152-
}
144+
setDragAndDropOverlayVisible(browserInstance, true)
153145
}
154146
override fun dragOver(dtde: DropTargetDragEvent) {
155-
try {
156-
browserInstance.jcefBrowser.cefBrowser.executeJavaScript(
157-
"window.setDragAndDropVisible('true')",
158-
browserInstance.jcefBrowser.cefBrowser.url,
159-
0
160-
)
161-
} catch (e: Exception) {
162-
LOG.error { "Failed to handle dragOver: ${e.message}" }
163-
}
147+
setDragAndDropOverlayVisible(browserInstance, true)
164148
}
165149
override fun dragExit(dte: DropTargetEvent) {
166-
try {
167-
browserInstance.jcefBrowser.cefBrowser.executeJavaScript(
168-
"window.setDragAndDropVisible('false')",
169-
browserInstance.jcefBrowser.cefBrowser.url,
170-
0
171-
)
172-
} catch (e: Exception) {
173-
LOG.error { "Failed to handle dragExit: ${e.message}" }
174-
}
150+
setDragAndDropOverlayVisible(browserInstance, false)
175151
}
176152
override fun drop(dtde: DropTargetDropEvent) {
177153
try {
@@ -201,32 +177,16 @@ class AmazonQPanel(val project: Project, private val scope: CoroutineScope) : Di
201177
validImages.subList(20, validImages.size).clear()
202178
}
203179

204-
browserInstance.jcefBrowser.cefBrowser.executeJavaScript(
205-
"window.resetTopBarClicked()",
206-
browserInstance.jcefBrowser.cefBrowser.url,
207-
0
208-
)
180+
executeJavaScript(browserInstance, "window.resetTopBarClicked()")
209181

210-
browserInstance.jcefBrowser.cefBrowser.executeJavaScript(
211-
"window.setDragAndDropVisible('false')",
212-
browserInstance.jcefBrowser.cefBrowser.url,
213-
0
214-
)
182+
setDragAndDropOverlayVisible(browserInstance, false)
215183

216184
val json = OBJECT_MAPPER.writeValueAsString(validImages)
217-
browserInstance.jcefBrowser.cefBrowser.executeJavaScript(
218-
"window.handleNativeDrop('$json')",
219-
browserInstance.jcefBrowser.cefBrowser.url,
220-
0
221-
)
185+
executeJavaScript(browserInstance, "window.handleNativeDrop('$json')")
222186

223187
if (errorMessages.isNotEmpty()) {
224188
val errorJson = OBJECT_MAPPER.writeValueAsString(errorMessages)
225-
browserInstance.jcefBrowser.cefBrowser.executeJavaScript(
226-
"window.handleNativeNotify('$errorJson')",
227-
browserInstance.jcefBrowser.cefBrowser.url,
228-
0
229-
)
189+
executeJavaScript(browserInstance, "window.handleNativeNotify('$errorJson')")
230190
}
231191

232192
dtde.dropComplete(true)
@@ -333,6 +293,22 @@ class AmazonQPanel(val project: Project, private val scope: CoroutineScope) : Di
333293
}
334294
}
335295

296+
private fun executeJavaScript(browserInstance: Browser, jsCommand: String) {
297+
try {
298+
browserInstance.jcefBrowser.cefBrowser.executeJavaScript(
299+
jsCommand,
300+
browserInstance.jcefBrowser.cefBrowser.url,
301+
0
302+
)
303+
} catch (e: Exception) {
304+
LOG.error { "Failed to execute JavaScript: $jsCommand - ${e.message}" }
305+
}
306+
}
307+
308+
private fun setDragAndDropOverlayVisible(browserInstance: Browser, visible: Boolean) {
309+
executeJavaScript(browserInstance, "window.setDragAndDropVisible('$visible')")
310+
}
311+
336312
private fun validateImageFile(file: File, allowedTypes: Set<String>, maxFileSize: Double, maxDimension: Int): String? {
337313
val fileName = file.name
338314
val ext = fileName.substringAfterLast('.', "").lowercase()

0 commit comments

Comments
 (0)