feat(ticket): use assignment detections API for unassigned issues

This commit is contained in:
2026-08-04 15:46:22 +05:30
parent 6169bbdc28
commit bad9c50dbf
11 changed files with 132 additions and 56 deletions

View File

@@ -17,6 +17,7 @@ import type {
RequestTicketExtensionPayload,
ReviewDetectionRepairProofPayload,
TicketAssignmentSummary,
TicketAssignmentDetectionsParams,
TicketListParams,
DetectionProofStatus,
VideoDetectionsParams,
@@ -136,6 +137,32 @@ export function useTicketClassDetectionsQuery(
return useTicketDetectionsQuery(videoId, params);
}
export function useTicketAssignmentDetectionsQuery(
ticketId: string | undefined,
params: TicketAssignmentDetectionsParams,
) {
const queryParams = useMemo(
() => ({
assignment_status: params.assignment_status ?? 'unassigned',
class_name: params.class_name,
skip: params.skip ?? 0,
limit: params.limit ?? 500,
}),
[params.assignment_status, params.class_name, params.limit, params.skip],
);
return useQuery({
queryKey: ticketKeys.assignmentDetections(ticketId ?? '', queryParams),
queryFn: () =>
ticketService.getTicketAssignmentDetections(
ticketId as string,
queryParams,
),
enabled: Boolean(ticketId),
staleTime: Infinity,
});
}
export function useTicketReviewDetectionsQuery(
videoId: string | undefined,
proofStatus?: DetectionProofStatus,
@@ -262,7 +289,7 @@ export function useAssignableTicketUsersQuery(enabled: boolean) {
});
}
export function useAssignTicketMutation(ticketId: string, videoId?: string) {
export function useAssignTicketMutation(ticketId: string) {
const queryClient = useQueryClient();
return useMutation({
@@ -278,13 +305,12 @@ export function useAssignTicketMutation(ticketId: string, videoId?: string) {
queryKey: ticketKeys.timeline(ticketId),
}),
queryClient.invalidateQueries({ queryKey: ticketKeys.lists() }),
...(videoId
? [
queryClient.invalidateQueries({
queryKey: ticketKeys.classDetectionLists(videoId),
}),
]
: []),
queryClient.invalidateQueries({
queryKey: ticketKeys.assignmentDetectionLists(ticketId),
}),
queryClient.invalidateQueries({
queryKey: ticketKeys.assignments(ticketId),
}),
]);
},
onError: () => toast.error('Failed to assign ticket'),