d15a13e485
- Delete all ops page components (ReviewQueue, AIMonitoring, Governance, SourceMonitoring, ActivityTimeline, SignalPipeline) - Remove OPERATIONS workspace from AppShell config, nav order, path detection - Remove all /ops/* routes from App.tsx - Remove WorkspaceType.OPERATIONS from allowedWorkspaces in authService, sessionStore, permissions - Keep MarketIntelligence page (already moved to /supply/market-intelligence) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
|
|
import { aiMonitoringService } from '../services/aiMonitoringService'
|
|
import type { AIMonitoringFilters } from '../provider/IAIMonitoringProvider'
|
|
import type { ReviewStatus } from '../domain/enums'
|
|
|
|
const QK = 'aiOutputs'
|
|
const STALE = 30_000
|
|
|
|
export function useAIOutputs(filters?: AIMonitoringFilters) {
|
|
return useQuery({
|
|
queryKey: [QK, filters ?? {}],
|
|
queryFn: () => aiMonitoringService.getOutputs(filters),
|
|
staleTime: STALE,
|
|
select: (res) => res.data ?? [],
|
|
})
|
|
}
|
|
|
|
export function useAIOutput(id: string | null) {
|
|
return useQuery({
|
|
queryKey: [QK, 'detail', id],
|
|
queryFn: () => aiMonitoringService.getOutput(id!),
|
|
staleTime: STALE,
|
|
enabled: !!id,
|
|
select: (res) => res.data ?? null,
|
|
})
|
|
}
|
|
|
|
export function useUpdateAIOutputReviewStatus() {
|
|
const qc = useQueryClient()
|
|
return useMutation({
|
|
mutationFn: ({ id, status }: { id: string; status: ReviewStatus }) =>
|
|
aiMonitoringService.updateReviewStatus(id, status),
|
|
onSuccess: () => {
|
|
qc.invalidateQueries({ queryKey: [QK] })
|
|
},
|
|
})
|
|
}
|