1
0
Эх сурвалжийг харах

Reconnect websocket on window focus (#366)

advo-kat 2 жил өмнө
parent
commit
0056d94d57

+ 8 - 2
pynecone/compiler/templates.py

@@ -164,8 +164,14 @@ USE_EFFECT = join(
         "  if(!isReady) {{",
         "    return;",
         "  }}",
-        f"  if (!{SOCKET}.current) {{{{",
-        f"    connect({SOCKET}, {{state}}, {{set_state}}, {RESULT}, {SET_RESULT}, {ROUTER}, {EVENT_ENDPOINT})",
+        "  const reconnectSocket = () => {{",
+        f"    {SOCKET}.current.reconnect()",
+        "  }}",
+        f"  if (typeof {SOCKET}.current !== 'undefined') {{{{",
+        f"    if (!{SOCKET}.current) {{{{",
+        f"      window.addEventListener('focus', reconnectSocket)",
+        f"      connect({SOCKET}, {{state}}, {{set_state}}, {RESULT}, {SET_RESULT}, {ROUTER}, {EVENT_ENDPOINT})",
+        "    }}",
         "  }}",
         "  const update = async () => {{",
         f"    if ({RESULT}.{STATE} != null) {{{{",