Commit b8029c70 authored by Steven's avatar Steven

chore: fix OAuth callback double-run state error

parent d14cfa1c
import { timestampDate } from "@bufbuild/protobuf/wkt"; import { timestampDate } from "@bufbuild/protobuf/wkt";
import { useEffect, useState } from "react"; import { useEffect, useRef, useState } from "react";
import { useSearchParams } from "react-router-dom"; import { useSearchParams } from "react-router-dom";
import { setAccessToken } from "@/auth-state"; import { setAccessToken } from "@/auth-state";
import { authServiceClient } from "@/connect"; import { authServiceClient } from "@/connect";
...@@ -18,12 +18,17 @@ const AuthCallback = () => { ...@@ -18,12 +18,17 @@ const AuthCallback = () => {
const navigateTo = useNavigateTo(); const navigateTo = useNavigateTo();
const { initialize } = useAuth(); const { initialize } = useAuth();
const [searchParams] = useSearchParams(); const [searchParams] = useSearchParams();
const handledRef = useRef(false);
const [state, setState] = useState<State>({ const [state, setState] = useState<State>({
loading: true, loading: true,
errorMessage: "", errorMessage: "",
}); });
useEffect(() => { useEffect(() => {
if (handledRef.current) {
return;
}
handledRef.current = true;
// Check for OAuth error response first (e.g., user denied access) // Check for OAuth error response first (e.g., user denied access)
const error = searchParams.get("error"); const error = searchParams.get("error");
const errorDescription = searchParams.get("error_description"); const errorDescription = searchParams.get("error_description");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment