From 87916f96fda99c9453b7c104dce9424d9105e2b2 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Sat, 24 May 2025 20:59:15 +0200 Subject: [PATCH] feat: use oauth provider --- web/src/context/oauth/index.ts | 33 +++++++++++++++++++++++++++ web/src/context/oauth/provider.tsx | 36 ++++++++++++++++++++++++++++++ web/src/main.tsx | 5 ++++- 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 web/src/context/oauth/index.ts create mode 100644 web/src/context/oauth/provider.tsx diff --git a/web/src/context/oauth/index.ts b/web/src/context/oauth/index.ts new file mode 100644 index 0000000..c9eeab7 --- /dev/null +++ b/web/src/context/oauth/index.ts @@ -0,0 +1,33 @@ +import { createContext, useContext } from "react"; + +interface OAuthContextValues { + active: boolean; + clientID: string; + redirectURI: string; + scope: string[]; + state: string; + nonce: string; + setActive: (state: boolean) => void; + setClientID: (id: string) => void; + setRedirectURI: (uri: string) => void; + setScope: (scopes: string[]) => void; + setState: (state: string) => void; + setNonce: (nonce: string) => void; +} + +export const OAuthContext = createContext({ + active: false, + clientID: "", + redirectURI: "", + scope: [], + state: "", + nonce: "", + setActive: () => {}, + setClientID: () => {}, + setRedirectURI: () => {}, + setScope: () => {}, + setState: () => {}, + setNonce: () => {}, +}); + +export const useOAuthContext = () => useContext(OAuthContext); diff --git a/web/src/context/oauth/provider.tsx b/web/src/context/oauth/provider.tsx new file mode 100644 index 0000000..d3e2b51 --- /dev/null +++ b/web/src/context/oauth/provider.tsx @@ -0,0 +1,36 @@ +import { useState, type FC, type ReactNode } from "react"; +import { OAuthContext } from "."; + +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(""); + + return ( + + {children} + + ); +}; diff --git a/web/src/main.tsx b/web/src/main.tsx index c6bd2bc..b99810a 100644 --- a/web/src/main.tsx +++ b/web/src/main.tsx @@ -3,11 +3,14 @@ import App from "./App"; import "./index.css"; import { DbProvider } from "./context/db/provider"; +import { OAuthProvider } from "./context/oauth/provider"; const root = document.getElementById("root")!; createRoot(root).render( - + + + );