import { useCallback, useState, type FC, type ReactNode } from "react"; import { OAuthContext } from "."; import { codeApi } from "@/api/code"; interface IOAuthProvider { children: ReactNode; } export const OAuthProvider: FC = ({ children }) => { const [active, setActive] = useState(false); const [clientID, setClientID] = useState(""); const [redirectURI, setRedirectURI] = useState(""); const [scope, setScope] = useState([]); const [state, setState] = useState(""); const [nonce, setNonce] = useState(""); const selectSession = useCallback( async (token: string) => { if (active && redirectURI) { const codeResponse = await codeApi(token, nonce); const params = new URLSearchParams({ code: codeResponse.code, state, }); window.location.replace(`${redirectURI}?${params.toString()}`); } }, [active, nonce, redirectURI, state], ); return ( {children} ); };