@@ -2,6 +2,7 @@ import { ResizableSidebar } from "@components/ResizableSidebar";
22import { useAuthStore } from "@features/auth/stores/authStore" ;
33import {
44 useInboxReportArtefacts ,
5+ useInboxReportSignals ,
56 useInboxReports ,
67} from "@features/inbox/hooks/useInboxReports" ;
78import { useInboxCloudTaskStore } from "@features/inbox/stores/inboxCloudTaskStore" ;
@@ -35,6 +36,7 @@ import { useCallback, useEffect, useMemo, useState } from "react";
3536import { toast } from "sonner" ;
3637import { SignalsErrorState , SignalsLoadingState } from "./InboxEmptyStates" ;
3738import { ReportCard } from "./ReportCard" ;
39+ import { SignalCard } from "./SignalCard" ;
3840
3941interface InboxSignalsTabProps {
4042 onGoToSetup : ( ) => void ;
@@ -58,7 +60,9 @@ function getArtefactsUnavailableMessage(
5860}
5961
6062export function InboxSignalsTab ( { onGoToSetup } : InboxSignalsTabProps ) {
61- const { data, isLoading, isFetching, error, refetch } = useInboxReports ( ) ;
63+ const { data, isLoading, isFetching, error, refetch } = useInboxReports ( {
64+ status : "ready" ,
65+ } ) ;
6266 const reports = data ?. results ?? [ ] ;
6367 const [ selectedReportId , setSelectedReportId ] = useState < string | null > ( null ) ;
6468 const sidebarOpen = useInboxSignalsSidebarStore ( ( state ) => state . open ) ;
@@ -108,6 +112,11 @@ export function InboxSignalsTab({ onGoToSetup }: InboxSignalsTabProps) {
108112 ? "Evidence could not be loaded right now. You can still create a task from this report."
109113 : getArtefactsUnavailableMessage ( artefactsUnavailableReason ) ;
110114
115+ const signalsQuery = useInboxReportSignals ( selectedReport ?. id ?? "" , {
116+ enabled : ! ! selectedReport ,
117+ } ) ;
118+ const signals = signalsQuery . data ?. signals ?? [ ] ;
119+
111120 const cloudRegion = useAuthStore ( ( state ) => state . cloudRegion ) ;
112121 const projectId = useAuthStore ( ( state ) => state . projectId ) ;
113122 const replayBaseUrl =
@@ -134,9 +143,10 @@ export function InboxSignalsTab({ onGoToSetup }: InboxSignalsTabProps) {
134143 return buildSignalTaskPrompt ( {
135144 report : selectedReport ,
136145 artefacts : visibleArtefacts ,
146+ signals,
137147 replayBaseUrl,
138148 } ) ;
139- } , [ selectedReport , visibleArtefacts , replayBaseUrl ] ) ;
149+ } , [ selectedReport , visibleArtefacts , signals , replayBaseUrl ] ) ;
140150
141151 const handleCreateTask = ( ) => {
142152 const prompt = buildPrompt ( ) ;
@@ -336,6 +346,33 @@ export function InboxSignalsTab({ onGoToSetup }: InboxSignalsTabProps) {
336346 </ Badge >
337347 </ Flex >
338348
349+ { signals . length > 0 && (
350+ < Box >
351+ < Text
352+ size = "1"
353+ weight = "medium"
354+ className = "block font-mono text-[12px]"
355+ mb = "2"
356+ >
357+ Signals ({ signals . length } )
358+ </ Text >
359+ < Flex direction = "column" gap = "2" >
360+ { signals . map ( ( signal ) => (
361+ < SignalCard key = { signal . signal_id } signal = { signal } />
362+ ) ) }
363+ </ Flex >
364+ </ Box >
365+ ) }
366+ { signalsQuery . isLoading && (
367+ < Text
368+ size = "1"
369+ color = "gray"
370+ className = "block font-mono text-[11px]"
371+ >
372+ Loading signals...
373+ </ Text >
374+ ) }
375+
339376 < Box >
340377 < Text
341378 size = "1"
0 commit comments