import React, { useState, useEffect } from "react"; import { BrowserRouter as Router, Routes, Route, useNavigate } from "react-router-dom"; import axios from "axios"; import Chart from "./components/Chart"; import Scanner from "./components/Scanner"; import Ribbon from "./components/Ribbon"; import SmartMoney from "./components/SmartMoney"; import Popup from "./components/Popup"; import AboutScanner from "./components/AboutScanner"; import MarketIntel from "./components/MarketIntel"; import TrendScanner from "./components/TrendScanner"; import WatchlistManager from "./components/WatchlistManager"; import Login from "./components/Login"; import Signup from "./components/Signup"; import ProtectedRoute from "./components/ProtectedRoute"; import Profile from "./components/Profile"; import MainDashboard from "./components/MainDashboard"; import "./index.css"; function Dashboard() { const [selectedStock, setSelectedStock] = useState("NSE:RELIANCE"); const [signal, setSignal] = useState(null); const [view, setView] = useState("dashboard"); const [userProfile, setUserProfile] = useState(null); const [dropdownOpen, setDropdownOpen] = useState(false); const [scannerLoaded, setScannerLoaded] = useState(false); const [buyModalData, setBuyModalData] = useState(null); const [buyQuantity, setBuyQuantity] = useState(1); const navigate = useNavigate(); const fetchProfile = () => { axios.get("/api/auth/me") .then(res => setUserProfile(res.data)) .catch(err => { if (err.response?.status === 401) handleLogout(); }); }; useEffect(() => { fetchProfile(); }, []); const handleLogout = () => { localStorage.removeItem("token"); navigate("/login"); }; const handleBuySubmit = async () => { if (!buyModalData || buyQuantity < 1) return; try { await axios.post("/api/portfolio/buy", { symbol: buyModalData.symbol, quantity: buyQuantity, buy_price: buyModalData.price }); setBuyModalData(null); setBuyQuantity(1); } catch (err) { console.error("Error buying stock:", err); alert("Failed to buy stock"); } }; const onBuyClick = (symbol, price) => { setBuyModalData({ symbol, price }); setBuyQuantity(1); }; return (
Current Price: ₹{buyModalData.price}
₹{(buyModalData.price * buyQuantity).toFixed(2)}