diff --git a/frontend/src/pages/CashFlowForecast.tsx b/frontend/src/pages/CashFlowForecast.tsx index b3796322..8323e869 100644 --- a/frontend/src/pages/CashFlowForecast.tsx +++ b/frontend/src/pages/CashFlowForecast.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect, useMemo, useCallback } from 'react'; +import { useState, useMemo, useCallback } from 'react'; import { BarChart, Bar, @@ -49,18 +49,22 @@ export default function CashFlowForecast() { forecastDays: 90, }); + const { distributionAccount, assetIssuer, forecastDays } = params; + const loadForecast = useCallback(async () => { - if (!params.distributionAccount || !params.assetIssuer) { + if (!distributionAccount || !assetIssuer) { notifyError('Please provide distribution account and asset issuer'); return; } + const requestParams = { distributionAccount, assetIssuer, forecastDays }; + setIsLoading(true); try { const [forecastData, historicalData, alertsData] = await Promise.all([ - getForecast(params), + getForecast(requestParams), getHistoricalData(6), - getAlerts(params), + getAlerts(requestParams), ]); setForecast(forecastData); @@ -72,11 +76,7 @@ export default function CashFlowForecast() { } finally { setIsLoading(false); } - }, [params, notifyError, notifySuccess]); - - useEffect(() => { - void loadForecast(); - }, [loadForecast]); + }, [distributionAccount, assetIssuer, forecastDays, notifyError, notifySuccess]); const chartData = useMemo(() => { if (!forecast) return []; diff --git a/frontend/src/services/cashFlowForecastApi.ts b/frontend/src/services/cashFlowForecastApi.ts index 9ccef1e1..14106a15 100644 --- a/frontend/src/services/cashFlowForecastApi.ts +++ b/frontend/src/services/cashFlowForecastApi.ts @@ -3,6 +3,11 @@ import axios, { type AxiosError } from 'axios'; const API_BASE_URL = (import.meta.env.VITE_API_BASE_URL as string | undefined) || 'http://localhost:3001'; +function authHeaders() { + const token = localStorage.getItem('payd_auth_token'); + return token ? { Authorization: `Bearer ${token}` } : {}; +} + export interface HistoricalPayrollData { period: string; totalAmount: number; @@ -104,9 +109,7 @@ export const getForecast = async (params: ForecastParams): Promise