auto-refreshing when user chose "reconnect dropbox"

This commit is contained in:
adamhaley
2025-08-15 17:53:29 -07:00
parent 7f30df6c2b
commit 78ace94c8e
2 changed files with 36 additions and 3 deletions
+16 -2
View File
@@ -33,7 +33,7 @@ class DropboxSetupNode:
if is_connected:
# If connected, only show reconnect option
inputs["optional"]["reconnect"] = ("BOOLEAN", {
"label": "Reconnect Dropbox (clear saved credentials)",
"label": "🔄 Reconnect Dropbox (clears credentials & refreshes UI)",
"default": False
})
else:
@@ -74,7 +74,21 @@ class DropboxSetupNode:
if reconnect:
print("[DropboxSetup] Reconnect requested - clearing credentials")
auth_manager.reset()
message = "🔄 Dropbox credentials cleared. Please provide new auth code to reconnect."
# Send WebSocket message to trigger ComfyUI refresh after clearing credentials
try:
from server import PromptServer
message_data = {
"type": "dropbox_reconnect_complete",
"success": True,
"message": "🔄 Credentials cleared - ComfyUI will refresh to show auth fields"
}
PromptServer.instance.send_sync("dropbox_reconnect_complete", message_data)
print(f"[DropboxSetup] Sent WebSocket notification for reconnect completion")
except Exception as e:
print(f"[DropboxSetup] Warning: Could not send WebSocket notification: {e}")
message = "🔄 Dropbox credentials cleared. ComfyUI will refresh to show auth fields..."
print(f"[DropboxSetup] {message}")
return {
"ui": {"text": [message]},
+20 -1
View File
@@ -25,6 +25,17 @@ app.registerExtension({
}
});
// Listen for WebSocket messages about reconnect completion
api.addEventListener("dropbox_reconnect_complete", (event) => {
console.log("[DropSendNode] Received reconnect completion notification via WebSocket", event.detail);
const data = event.detail;
if (data.success) {
console.log("[DropSendNode] Reconnect successful - refreshing interface");
this.handleReconnectSuccess();
}
});
// Listen for postMessage from OAuth popup window
window.addEventListener("message", (event) => {
if (event.data && event.data.type === 'dropbox_oauth_complete') {
@@ -49,11 +60,19 @@ app.registerExtension({
// Refresh ComfyUI interface to update node UI
setTimeout(() => {
console.log("[DropSendNode] Refreshing ComfyUI interface");
console.log("[DropSendNode] Refreshing ComfyUI interface after OAuth success");
window.location.reload();
}, 1500); // Small delay to ensure OAuth processing is complete
},
handleReconnectSuccess() {
// Refresh ComfyUI interface to show auth fields again
setTimeout(() => {
console.log("[DropSendNode] Refreshing ComfyUI interface after reconnect");
window.location.reload();
}, 1000); // Shorter delay for reconnect
},
// Override node execution to detect and handle OAuth URLs
async beforeRegisterNodeDef(nodeType, nodeData, app) {
if (nodeData.name === "DropboxSetupNode") {