import React, { useState, useEffect } from 'react'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'; import axios from 'axios'; const PROXY_URL = 'https://api.allorigins.win/raw?url='; const fetchHistoricalData = async (ticker) => { const yahooUrl = `https://query1.finance.yahoo.com/v8/finance/chart/${ticker}?range=100d&interval=1d`; const encodedUrl = encodeURIComponent(yahooUrl); try { const response = await axios.get(PROXY_URL + encodedUrl); const data = response.data.chart.result[0]; const timestamps = data.timestamp; const prices = data.indicators.quote[0].close; return timestamps .map((ts, i) => ({ date: new Date(ts * 1000).toLocaleDateString('en-IN', {day: 'numeric', month: 'short'}), price: prices[i] ? prices[i].toFixed(2) : null, })) .filter(point => point.price !== null); } catch (error) { console.error("Failed to fetch historical data for chart:", error); return []; } }; function HistoricalChart({ ticker }) { const [data, setData] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { if (ticker) { setLoading(true); fetchHistoricalData(ticker).then(chartData => { setData(chartData); setLoading(false); }); } }, [ticker]); if (loading) return

Loading Chart Data...

; if (data.length === 0) return

Could not load chart data.

; return (
); } export default HistoricalChart;