feat: implement select session

This commit is contained in:
2025-05-25 14:53:55 +02:00
parent 024d07fdd6
commit a157a3ec0e

View File

@ -1,5 +1,6 @@
import { useState, type FC, type ReactNode } from "react";
import { useCallback, useState, type FC, type ReactNode } from "react";
import { OAuthContext } from ".";
import { codeApi } from "@/api/code";
interface IOAuthProvider {
children: ReactNode;
@ -13,6 +14,24 @@ export const OAuthProvider: FC<IOAuthProvider> = ({ children }) => {
const [state, setState] = useState("");
const [nonce, setNonce] = useState("");
const selectSession = useCallback(
async (token: string) => {
if (active && redirectURI) {
const codeResponse = await codeApi(token, nonce);
console.log("gen code:", { codeResponse });
const params = new URLSearchParams({
code: codeResponse.code,
state,
});
window.location.replace(`${redirectURI}?${params.toString()}`);
}
},
[active, nonce, redirectURI, state]
);
return (
<OAuthContext.Provider
value={{
@ -28,6 +47,7 @@ export const OAuthProvider: FC<IOAuthProvider> = ({ children }) => {
setScope,
setState,
setNonce,
selectSession,
}}
>
{children}