|
@@ -1,10 +1,17 @@
|
|
import React from "react";
|
|
import React from "react";
|
|
|
|
|
|
const localStorageKey = "usr_jwt";
|
|
const localStorageKey = "usr_jwt";
|
|
-const AppContext = React.createContext();
|
|
|
|
|
|
+interface AppProviderProps {
|
|
|
|
+ type: "regular" | "firebase";
|
|
|
|
+ token: string | null;
|
|
|
|
+ setToken: (newToken: string) => void
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+const AppContext = React.createContext<AppProviderProps>({type: 'regular', token: null, setToken: () => {}});
|
|
|
|
|
|
-export function AppProvider(props) {
|
|
|
|
- const [token, setToken] = React.useState(null);
|
|
|
|
|
|
+export function AppProvider(props: AppProviderProps) {
|
|
|
|
+ const [type] = React.useState(props.type);
|
|
|
|
+ const [token, setToken] = React.useState<string|null>(props.token);
|
|
|
|
|
|
React.useEffect(() => {
|
|
React.useEffect(() => {
|
|
const jwt = localStorage.getItem(localStorageKey);
|
|
const jwt = localStorage.getItem(localStorageKey);
|
|
@@ -20,8 +27,8 @@ export function AppProvider(props) {
|
|
}, [token]);
|
|
}, [token]);
|
|
|
|
|
|
const memData = React.useMemo(() => {
|
|
const memData = React.useMemo(() => {
|
|
- return { token, setToken };
|
|
|
|
- }, [token, setToken]);
|
|
|
|
|
|
+ return { token, type, setToken };
|
|
|
|
+ }, [token, type, setToken]);
|
|
|
|
|
|
return <AppContext.Provider value={memData} {...props} />;
|
|
return <AppContext.Provider value={memData} {...props} />;
|
|
}
|
|
}
|