import React, { useState, useEffect } from 'react'; import { GenericModal } from "../atoms/GenericModal"; import { MenuItem, TextField, Typography, CircularProgress } from "@mui/material"; import Button from "@mui/material/Button"; import axios from 'axios'; import { modalStyle } from "./AddWhereCondModal"; interface IntegrationProps { isOpen: boolean; handleStart: (data: IntegrationSettings) => void; handleClose: () => void; } export interface IntegrationSettings { credentials: string; spreadsheetId: string; range: string; data: string; } export const IntegrationSettingsModal = ({ isOpen, handleStart, handleClose }: IntegrationProps) => { const [settings, setSettings] = useState({ credentials: '', spreadsheetId: '', range: '', data: '', }); const [spreadsheets, setSpreadsheets] = useState<{ id: string, name: string }[]>([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); useEffect(() => { if (isOpen) { // Fetch Google Sheets from backend when modal is opened setLoading(true); axios.get('http://localhost:8080/auth/google/callback') .then(response => { setSpreadsheets(response.data.files); setLoading(false); }) .catch(error => { setError(`Error fetching spreadsheets: ${error}`); setLoading(false); }); } }, [isOpen]); const handleChange = (field: keyof IntegrationSettings) => (e: React.ChangeEvent) => { setSettings({ ...settings, [field]: e.target.value }); }; const handleSpreadsheetSelect = (e: React.ChangeEvent) => { setSettings({ ...settings, spreadsheetId: e.target.value }); }; return (
Google Sheets Integration {loading ? ( ) : error ? ( {error} ) : ( {spreadsheets.map(sheet => ( {sheet.name} ))} )}
); };