import { User } from "@saleor/fragments/types/User"; import { parse as parseQs } from "qs"; import React, { MutableRefObject } from "react"; import { Route, RouteComponentProps, Switch } from "react-router-dom"; import Layout from "./components/Layout"; import { ExternalLoginInput, RequestExternalLoginInput } from "./hooks/useExternalAuthProvider"; import { ExternalObtainAccessTokens_externalObtainAccessTokens } from "./types/ExternalObtainAccessTokens"; import { TokenAuth_tokenCreate } from "./types/TokenAuth"; import { LoginUrlQueryParams, newPasswordPath, passwordResetPath, passwordResetSuccessPath } from "./urls"; import LoginViewComponent from "./views/Login"; import NewPassword from "./views/NewPassword"; import ResetPassword from "./views/ResetPassword"; import ResetPasswordSuccess from "./views/ResetPasswordSuccess"; const LoginView: React.FC> = () => { const qs = parseQs(location.search.substr(1)); const params: LoginUrlQueryParams = qs; return ; }; interface UserContext { login: (username: string, password: string) => Promise; loginByExternalPlugin: ( input: ExternalLoginInput ) => Promise; loginByToken: (auth: string, csrf: string, user: User) => void; logout: () => void; requestLoginByExternalPlugin: ( pluginId: string, input: RequestExternalLoginInput ) => Promise; tokenAuthLoading: boolean; tokenRefresh: () => Promise; tokenVerifyLoading: boolean; user?: User; autologinPromise?: MutableRefObject>; } export const UserContext = React.createContext({ login: undefined, loginByExternalPlugin: undefined, loginByToken: undefined, logout: undefined, requestLoginByExternalPlugin: undefined, tokenAuthLoading: false, tokenRefresh: undefined, tokenVerifyLoading: false }); const AuthRouter: React.FC = () => ( ); AuthRouter.displayName = "AuthRouter"; export default AuthRouter; export * from "./utils";