Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/missionmatch / frontend/src/tools/slatematch/captureQueries.ts |
| Date | Not specified in source |
| Repository | Janady13/missionmatch |
| Revision | 720d47fae476b0d38477ae4401697d372b1ea2bc |
| Branch | feature/opportunity-to-outcome |
| Path or archive member | frontend/src/tools/slatematch/captureQueries.ts |
| Original SHA-256 | 62814ca89b4c07ef0565de4730faef0f71abe6d50379030dac6c9bdc0852335a |
| Git blob SHA | 0a358303d2c666cc69d92c548cfcde51cf6cfcd8 |
| Reading-copy SHA-256 | 62814ca89b4c07ef0565de4730faef0f71abe6d50379030dac6c9bdc0852335a |
Recovered source transcript
Download complete source text ↓38 lines · 1.1 KB
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
import { captureApi } from './captureApi'
export function useTrackedOpportunities(p: { status?: string }) {
return useQuery({
queryKey: ['slatematch', 'tracked', p.status ?? ''],
queryFn: () => captureApi.list(p),
})
}
export function useTrackedOpportunity(id: string | null) {
return useQuery({
queryKey: ['slatematch', 'tracked', 'one', id],
queryFn: () => captureApi.get(id as string),
enabled: !!id,
})
}
// A create or update changes the list; invalidate the whole tracked namespace so the new row appears.
function useInvalidate() {
const qc = useQueryClient()
return () => void qc.invalidateQueries({ queryKey: ['slatematch', 'tracked'] })
}
export function useCreateTrackedOpportunity() {
const inv = useInvalidate()
return useMutation({ mutationFn: captureApi.create, onSuccess: () => inv() })
}
export function useUpdateTrackedOpportunity() {
const inv = useInvalidate()
return useMutation({
mutationFn: (v: { id: string; patch: Record<string, unknown> }) => captureApi.update(v.id, v.patch),
onSuccess: () => inv(),
})
}