import React, { useState, useEffect } from 'react'; import { Container, Typography, Select, MenuItem, Button, Card, CardContent, CircularProgress } from '@mui/material'; import type { SelectChangeEvent } from '@mui/material/Select'; import api from '../services/api'; interface Sign { id: number; name: string; icon: string; } const Home: React.FC = () => { const [signs, setSigns] = useState([]); const [selectedSign, setSelectedSign] = useState(''); const [timeline, setTimeline] = useState('daily'); const [horoscope, setHoroscope] = useState(''); const [loading, setLoading] = useState(false); useEffect(() => { const fetchSigns = async () => { try { const response = await api.get('/signs', { headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } }); setSigns(response.data); } catch (error) { console.error('Failed to fetch signs', error); } }; fetchSigns(); }, []); const handleGetHoroscope = async () => { if (!selectedSign) return; setLoading(true); try { const response = await api.get(`/horoscope/${selectedSign}/${timeline}`, { headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } }); setHoroscope(response.data.horoscope); } catch (error) { console.error('Failed to fetch horoscope', error); } finally { setLoading(false); } }; return ( Your Horoscopes {horoscope && ( {selectedSign} - {timeline} {horoscope} )} ); }; export default Home;