import type { ISessionInfo, ILoginInputOptions, } from "@inrupt/solid-client-authn-core"; import { createContext, useContext } from "react"; export type SessionInfo = ISessionInfo; export type LoginOptions = ILoginInputOptions; export interface SolidAuthFunctions { login: (issuer: string, loginOptions?: LoginOptions) => Promise; logout: () => Promise; signUp: (issuer: string, loginOptions?: LoginOptions) => Promise; fetch: typeof fetch; session: SessionInfo; ranInitialAuthCheck: boolean; } // There is no initial value for this context. It will be given in the provider // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore export const SolidAuthContext = createContext(undefined); export function useSolidAuth(): SolidAuthFunctions { return useContext(SolidAuthContext); }