refactor(ticket): remove ticket status from list events and use assignment status for closure
This commit is contained in:
@@ -49,7 +49,7 @@ function getTicketAction(ticket: TicketDetail) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ticket.status === 'closed') {
|
if (ticket.assignment_status === 'approved' || ticket.assignment_status === 'rejected') {
|
||||||
return <ClosedTicketAction ticket={ticket} />;
|
return <ClosedTicketAction ticket={ticket} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ function shouldCountCreatedTicket(
|
|||||||
event: TicketTableStatusEvent,
|
event: TicketTableStatusEvent,
|
||||||
params?: TicketListParams,
|
params?: TicketListParams,
|
||||||
) {
|
) {
|
||||||
if (params?.status && event.status !== params.status) return false;
|
|
||||||
if (params?.chainage_id && event.chainage_id !== params.chainage_id) {
|
if (params?.chainage_id && event.chainage_id !== params.chainage_id) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -87,7 +86,6 @@ function buildTicketListItem(
|
|||||||
if (
|
if (
|
||||||
!event.id ||
|
!event.id ||
|
||||||
!event.ticket_name ||
|
!event.ticket_name ||
|
||||||
!event.status ||
|
|
||||||
event.detection_count === undefined ||
|
event.detection_count === undefined ||
|
||||||
!event.updated_at
|
!event.updated_at
|
||||||
) {
|
) {
|
||||||
@@ -99,7 +97,6 @@ function buildTicketListItem(
|
|||||||
ticket_name: event.ticket_name,
|
ticket_name: event.ticket_name,
|
||||||
chainage_id: event.chainage_id ?? null,
|
chainage_id: event.chainage_id ?? null,
|
||||||
chainage_name: event.chainage_name ?? null,
|
chainage_name: event.chainage_name ?? null,
|
||||||
status: event.status,
|
|
||||||
default_defect_class: event.default_defect_class ?? null,
|
default_defect_class: event.default_defect_class ?? null,
|
||||||
assigned_to_name: event.assigned_to_name ?? null,
|
assigned_to_name: event.assigned_to_name ?? null,
|
||||||
detection_count: event.detection_count,
|
detection_count: event.detection_count,
|
||||||
@@ -118,7 +115,6 @@ function mergeTicketListItem(
|
|||||||
ticket_name: event.ticket_name ?? current.ticket_name,
|
ticket_name: event.ticket_name ?? current.ticket_name,
|
||||||
chainage_id: event.chainage_id ?? current.chainage_id,
|
chainage_id: event.chainage_id ?? current.chainage_id,
|
||||||
chainage_name: event.chainage_name ?? current.chainage_name,
|
chainage_name: event.chainage_name ?? current.chainage_name,
|
||||||
status: event.status ?? current.status,
|
|
||||||
default_defect_class:
|
default_defect_class:
|
||||||
event.default_defect_class ?? current.default_defect_class,
|
event.default_defect_class ?? current.default_defect_class,
|
||||||
assigned_to_name: event.assigned_to_name ?? current.assigned_to_name,
|
assigned_to_name: event.assigned_to_name ?? current.assigned_to_name,
|
||||||
|
|||||||
@@ -63,19 +63,11 @@ export function useTicketDetailEvents(
|
|||||||
[refetchTicket],
|
[refetchTicket],
|
||||||
);
|
);
|
||||||
|
|
||||||
const shouldStop = useCallback(
|
|
||||||
(eventName: keyof typeof events, event: unknown) =>
|
|
||||||
eventName === 'ticket_status' &&
|
|
||||||
(event as TicketDetailStatusEvent).status === 'closed',
|
|
||||||
[],
|
|
||||||
);
|
|
||||||
|
|
||||||
useSseWithToken({
|
useSseWithToken({
|
||||||
enabled: Boolean(enabled && ticketId),
|
enabled: Boolean(enabled && ticketId),
|
||||||
getToken,
|
getToken,
|
||||||
getPath,
|
getPath,
|
||||||
events,
|
events,
|
||||||
reconnectOnEvents: TICKET_DETAIL_RECONNECT_EVENTS,
|
reconnectOnEvents: TICKET_DETAIL_RECONNECT_EVENTS,
|
||||||
shouldStop,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import type {
|
|||||||
SubmitRepairUploadPayload,
|
SubmitRepairUploadPayload,
|
||||||
TicketDetail,
|
TicketDetail,
|
||||||
TicketListParams,
|
TicketListParams,
|
||||||
TicketStatus,
|
|
||||||
} from '@/types';
|
} from '@/types';
|
||||||
|
|
||||||
import { ticketKeys } from '../queries/ticketKeys';
|
import { ticketKeys } from '../queries/ticketKeys';
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ export const ticketService = {
|
|||||||
params: {
|
params: {
|
||||||
skip: params?.skip ?? 0,
|
skip: params?.skip ?? 0,
|
||||||
limit: params?.limit ?? 10,
|
limit: params?.limit ?? 10,
|
||||||
status: params?.status,
|
|
||||||
chainage_id: params?.chainage_id,
|
chainage_id: params?.chainage_id,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ export type TicketTableStatusEvent = {
|
|||||||
ticket_name?: string;
|
ticket_name?: string;
|
||||||
chainage_id?: string | null;
|
chainage_id?: string | null;
|
||||||
chainage_name?: string | null;
|
chainage_name?: string | null;
|
||||||
status?: TicketStatus;
|
|
||||||
default_defect_class?: string | null;
|
default_defect_class?: string | null;
|
||||||
assigned_to_name?: string | null;
|
assigned_to_name?: string | null;
|
||||||
detection_count?: number;
|
detection_count?: number;
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
import type { PaginationParams } from '../common';
|
import type { PaginationParams } from '../common';
|
||||||
import type { TicketStatus } from './status';
|
|
||||||
|
|
||||||
export interface TicketListParams extends PaginationParams {
|
export interface TicketListParams extends PaginationParams {
|
||||||
status?: TicketStatus;
|
|
||||||
chainage_id?: string;
|
chainage_id?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11,7 +9,6 @@ export interface TicketListItem {
|
|||||||
ticket_name: string;
|
ticket_name: string;
|
||||||
chainage_id: string | null;
|
chainage_id: string | null;
|
||||||
chainage_name: string | null;
|
chainage_name: string | null;
|
||||||
status: TicketStatus;
|
|
||||||
default_defect_class: string | null;
|
default_defect_class: string | null;
|
||||||
assigned_to_name: string | null;
|
assigned_to_name: string | null;
|
||||||
detection_count: number;
|
detection_count: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user