import { createContext, MutableRefObject } from 'react'; import { OAuthTokenResponse } from '../Models/OAuth'; export interface AuthData { deviceCode: string; accessToken: string; refreshToken?: string; } export interface RefreshTokenReminder { promise?: Promise; refreshToken?: string; } export interface IAuthContext { auth?: AuthData; setAuth: (data?: AuthData) => void; refreshTokenReminder?: MutableRefObject; } export const getAuthDataFromLocalStorage = (): AuthData | undefined => { const deviceCode = localStorage.getItem('device_code'); const accessToken = localStorage.getItem('access_token'); if (deviceCode && accessToken) { return { deviceCode, accessToken, refreshToken: localStorage.getItem('refresh_token') || undefined, }; } }; export const AuthContext = createContext({ auth: getAuthDataFromLocalStorage(), // eslint-disable-next-line @typescript-eslint/no-empty-function setAuth: () => {}, });