import React, { createContext, ReactElement } from "react"; import useSWR, { KeyedMutator } from "swr"; // services import { UserService } from "services/user.service"; // constants import { CURRENT_USER } from "constants/fetch-keys"; // types import type { IUser } from "types"; interface IUserContextProps { user?: IUser; isUserLoading: boolean; mutateUser: KeyedMutator; assignedIssuesLength?: number; workspaceInvitesLength?: number; } // services const userService = new UserService(); export const UserContext = createContext({} as IUserContextProps); export const UserProvider = ({ children }: { children: ReactElement }) => { // API to fetch user information const { data, error, mutate } = useSWR(CURRENT_USER, () => userService.currentUser(), { shouldRetryOnError: false, }); return ( {children} ); };