feat(tickets): add tickets API client, update integrations API for paginated search, fix callers

- Create frontend/src/api/tickets.ts with ticketsApi (resources, status, create, ai-parse, priorities, search)
- Update integrationsApi.searchTickets and searchTicketsQueue return types from PSATicketSearchResult[] to TicketListResponse
- Fix TicketQueue.tsx to use results.items (append/set) and results.items.length for pagination check
- Fix TicketPickerModal.tsx to use results.items when setting search results
- Export ticketsApi from api/index.ts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-16 03:05:13 +00:00
parent 506aac609d
commit 9d88c8456c
5 changed files with 58 additions and 8 deletions

View File

@@ -234,11 +234,11 @@ export function TicketQueue() {
try {
const results = await integrationsApi.searchTicketsQueue(params)
if (append) {
setTickets((prev) => [...prev, ...results])
setTickets((prev) => [...prev, ...results.items])
} else {
setTickets(results)
setTickets(results.items)
}
setHasMore(results.length === PAGE_SIZE)
setHasMore(results.items.length === PAGE_SIZE)
setError(null)
} catch {
setError('Failed to load tickets. Check your PSA connection.')

View File

@@ -56,7 +56,7 @@ export function TicketPickerModal({ open, onClose, sessionId, onLinked, onSelect
query: query.trim(),
include_closed: closed,
})
setSearchResults(results)
setSearchResults(results.items)
setHasSearched(true)
} catch (err: unknown) {
const message =