From a157a3ec0e41afc464b41588e3013ea32e930493 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Sun, 25 May 2025 14:53:55 +0200 Subject: [PATCH] feat: implement select session --- web/src/context/oauth/provider.tsx | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/web/src/context/oauth/provider.tsx b/web/src/context/oauth/provider.tsx index d3e2b51..4cf355d 100644 --- a/web/src/context/oauth/provider.tsx +++ b/web/src/context/oauth/provider.tsx @@ -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 = ({ 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 ( = ({ children }) => { setScope, setState, setNonce, + selectSession, }} > {children}