Bläddra i källkod

Code can become invalid after timeout

Manav Rathi 1 år sedan
förälder
incheckning
b917237db2
1 ändrade filer med 11 tillägg och 6 borttagningar
  1. 11 6
      web/apps/cast/src/pages/index.tsx

+ 11 - 6
web/apps/cast/src/pages/index.tsx

@@ -11,6 +11,9 @@ export default function Index() {
     const [publicKeyB64, setPublicKeyB64] = useState<string | undefined>();
     const [privateKeyB64, setPrivateKeyB64] = useState<string | undefined>();
     const [pairingCode, setPairingCode] = useState<string | undefined>();
+    // TODO: This needs to change, since there is an interim period when the
+    // code becomes invalid.
+    const [haveInitializedCast, setHaveInitializedCast] = useState(false);
 
     const router = useRouter();
 
@@ -27,10 +30,11 @@ export default function Index() {
     };
 
     useEffect(() => {
-        if (pairingCode) {
-            castReceiverLoadingIfNeeded().then((cast) =>
-                advertiseCode(cast, () => pairingCode),
-            );
+        if (pairingCode && !haveInitializedCast) {
+            castReceiverLoadingIfNeeded().then((cast) => {
+                setHaveInitializedCast(true);
+                advertiseCode(cast, () => pairingCode);
+            });
         }
     }, [pairingCode]);
 
@@ -54,10 +58,11 @@ export default function Index() {
             storeCastData(data);
             await router.push("/slideshow");
         } catch (e) {
+            // Code has become invalid
             log.error("Failed to get cast data", e);
             // Start again from the beginning.
-            // setPairingCode(undefined);
-            // init();
+            setPairingCode(undefined);
+            init();
         }
     };