diff --git a/hooks/use-task-poller.ts b/hooks/use-task-poller.ts index 7de0f0e..09e0827 100644 --- a/hooks/use-task-poller.ts +++ b/hooks/use-task-poller.ts @@ -1,6 +1,6 @@ 'use client'; -import { useEffect, useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { getTask } from '@/lib/api'; import type { Task } from '@/lib/types'; @@ -12,6 +12,11 @@ type UseTaskPollerInput = { export function useTaskPoller({ taskId, intervalMs = 2200, onTerminalState }: UseTaskPollerInput) { const [task, setTask] = useState(null); + const onTerminalStateRef = useRef(onTerminalState); + + useEffect(() => { + onTerminalStateRef.current = onTerminalState; + }, [onTerminalState]); useEffect(() => { if (!taskId) { @@ -33,7 +38,7 @@ export function useTaskPoller({ taskId, intervalMs = 2200, onTerminalState }: Us setTask(latest); if (latest.status === 'completed' || latest.status === 'failed') { - onTerminalState?.(latest); + onTerminalStateRef.current?.(latest); return; } } catch { @@ -53,7 +58,7 @@ export function useTaskPoller({ taskId, intervalMs = 2200, onTerminalState }: Us clearTimeout(timer); } }; - }, [taskId, intervalMs, onTerminalState]); + }, [taskId, intervalMs]); return task; } diff --git a/lib/api.ts b/lib/api.ts index b379d0c..6dec663 100644 --- a/lib/api.ts +++ b/lib/api.ts @@ -153,11 +153,21 @@ export async function getLatestPortfolioInsight() { } export async function listFilings(query?: { ticker?: string; limit?: number }) { + const queryParams: { + ticker?: string; + limit?: number; + } = {}; + + if (query?.ticker?.trim()) { + queryParams.ticker = query.ticker.trim().toUpperCase(); + } + + if (query?.limit !== undefined) { + queryParams.limit = query.limit; + } + const result = await client.api.filings.get({ - $query: { - ticker: query?.ticker, - limit: query?.limit - } + $query: queryParams }); return await unwrapData<{ filings: Filing[] }>(result, 'Unable to fetch filings'); diff --git a/next-env.d.ts b/next-env.d.ts index 9edff1c..c4b7818 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/types/routes.d.ts"; +import "./.next/dev/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.