leumas-private-shared
Version:
Private React JSX Package For Leumas Shared Components, Headers, Footers, Asides, Login Pages, API Key Manager and much more. Styles and everything reusable to avoid DRY code across all of our subdomains
42 lines (36 loc) • 1.23 kB
JSX
// src/hooks/useGoogleCalendar.js
import { useGoogleLogin } from '@react-oauth/google';
import axios from 'axios';
import { useState } from 'react';
const useGoogleCalendar = () => {
const [tokenResponse, setTokenResponse] = useState(null);
const [events, setEvents] = useState([]);
const login = useGoogleLogin({
onSuccess: async (tokenResponse) => {
setTokenResponse(tokenResponse);
const accessToken = tokenResponse.access_token;
const { data } = await axios.get('https://www.googleapis.com/calendar/v3/calendars/primary/events', {
headers: {
Authorization: `Bearer ${accessToken}`,
},
});
setEvents(data.items);
},
});
const createEvent = async (eventDetails) => {
const accessToken = tokenResponse.access_token;
const response = await axios.post(
'https://www.googleapis.com/calendar/v3/calendars/primary/events',
eventDetails,
{
headers: {
Authorization: `Bearer ${accessToken}`,
'Content-Type': 'application/json',
},
}
);
return response.data;
};
return { login, events, createEvent };
};
export default useGoogleCalendar;