auto-refreshing when user chose "reconnect dropbox"
This commit is contained in:
+16
-2
@@ -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
@@ -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") {
|
||||
|
||||
Reference in New Issue
Block a user