import React, { useState, ReactNode } from 'react';
import { CoursesPageContext, ProfilePageContext, StoreContext, UsersPageContext } from 'contexts';
import { ProfilePageDataType, ProfilePageStatusType, SearchingRoleStateType } from 'types';
import RootStore from 'stores/RootStore';
import { ICategory, IUser } from 'interfaces';
import { CourseStatusEnum } from 'enums';
/**
* Root store context provider
*/
export const RootStoreProvider = ({ children }: { children: ReactNode }) => {
const store = new RootStore();
return {children};
};
/**
* Profile page context provider
*/
export const ProfilePageContextProvider: React.FC = ({ children }) => {
const [statusPageView, setStatusPageView] = useState('default');
const [pageData, setPageData] = useState({});
return (
{children}
);
};
/**
* Users page context provider
*/
export const UsersPageContextProvider: React.FC = ({ children }) => {
const [searchingRole, setSearchingRole] = useState(undefined);
const [loading, setLoading] = useState(false);
const [search, setSearch] = useState(undefined);
const [editingUser, setEditingUser] = useState(undefined);
const [deletingUser, setDeletingUser] = useState(undefined);
return (
{children}
);
};
/**
* Courses page context provider
*/
export const CoursesPageContextProvider: React.FC = ({ children }) => {
const [selectedCategory, setSelectedCategory] = useState(undefined);
const [courseStatus, setCourseStatus] = useState(undefined);
return (
{children}
);
};