'use client'; import { PERMISSIONS } from '@/constants/permissions'; import { PermissionGuard } from '@/guards'; import type { TicketAssignmentSummary, TicketDetail } from '@/types'; import { AssignedContractorAction } from './actions/AssignedContractorAction'; import { ClosedTicketAction } from './actions/ClosedTicketAction'; import { NoTicketAction } from './actions/NoTicketAction'; import { RequestExtensionAction } from './actions/RequestExtensionAction'; import { ReviewExtensionRequestAction } from './actions/ReviewExtensionRequestAction'; interface TicketStatusActionsProps { ticket: TicketDetail; assignment?: TicketAssignmentSummary; } function getTicketAction( ticket: TicketDetail, assignment?: TicketAssignmentSummary, ) { if (assignment && !assignment.is_complete) { return ( } > } > <> {ticket.assignment_status === 'assigned' ? ( ) : null} ); } if (ticket.assignment_status === 'unassigned') { return null; } if (ticket.assignment_status === 'assigned') { return ( } > ); } if (ticket.assignment_status === 'under_review') { return null; } if ( ticket.assignment_status === 'approved' || ticket.assignment_status === 'rejected' ) { return ; } return ; } export function TicketStatusActions({ ticket, assignment, }: TicketStatusActionsProps) { const action = getTicketAction(ticket, assignment); return action ?
{action}
: null; }