frontend/src/contexts/UsersProvider.tsx

44 lines
970 B
TypeScript
Raw Normal View History

2020-12-05 18:06:26 +01:00
import React, { useState, createContext, useEffect, ReactNode, useRef } from 'react';
2020-12-05 00:16:59 +01:00
import { User } from '../types';
import { axiosInstance } from '../utils/axiosInstance';
interface UserContext {
users: Array<User>;
}
export const usersContext = createContext<UserContext | undefined>(undefined);
interface UsersProviderProps {
children: ReactNode;
}
export const UsersProvider = ({ children }: UsersProviderProps) => {
const [users, setUsers] = useState<Array<User>>([]);
2020-12-12 17:54:13 +01:00
2020-12-05 00:16:59 +01:00
const getUsers = async () => {
try {
2020-12-12 17:54:13 +01:00
const { data } = await axiosInstance.get<Array<User>>(`${process.env.REACT_APP_API_URL}/api/v1/users/students`);
2020-12-05 00:16:59 +01:00
setUsers(data);
2020-12-05 18:06:26 +01:00
console.log(data);
2020-12-12 17:54:13 +01:00
} catch (e) {
2020-12-05 00:16:59 +01:00
console.log(e);
}
};
useEffect(() => {
2020-12-12 17:54:13 +01:00
setTimeout(() => {
2020-12-05 00:16:59 +01:00
getUsers();
2020-12-12 17:54:13 +01:00
}, 500);
2020-12-05 00:16:59 +01:00
}, []);
return (
<usersContext.Provider
value={{
users,
}}
>
{children}
</usersContext.Provider>
);
};