// 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;
