fix: handle optional messages in ConversationDetailDialog and API response
This commit is contained in:
@@ -33,7 +33,7 @@ type ConversationDetailDialogProps = {
|
||||
saving: boolean;
|
||||
item: AdminConversation | null;
|
||||
detail: AdminConversationDetail | null;
|
||||
messages: AdminMessage[];
|
||||
messages?: AdminMessage[] | null;
|
||||
/** 是否还有更早消息(cursor 分页) */
|
||||
messagesHasMore?: boolean;
|
||||
loadingMoreMessages?: boolean;
|
||||
@@ -139,7 +139,7 @@ export function ConversationDetailDialog({
|
||||
saving,
|
||||
item,
|
||||
detail,
|
||||
messages,
|
||||
messages: rawMessages,
|
||||
messagesHasMore = false,
|
||||
loadingMoreMessages = false,
|
||||
onLoadMoreMessages,
|
||||
@@ -150,6 +150,7 @@ export function ConversationDetailDialog({
|
||||
onRead,
|
||||
onOpenClose,
|
||||
}: ConversationDetailDialogProps) {
|
||||
const messages = Array.isArray(rawMessages) ? rawMessages : [];
|
||||
const currentConversation = detail ?? item;
|
||||
const isClosedConversation = currentConversation?.status === 4;
|
||||
const isPendingConversation = currentConversation?.status === 2;
|
||||
|
||||
@@ -456,7 +456,7 @@ export default function DashboardConversationsPage() {
|
||||
fetchConversationMessages({ conversationId: item.id, limit: 20 }),
|
||||
])
|
||||
setDetailData(detail)
|
||||
setDetailMessages(messages.results)
|
||||
setDetailMessages(Array.isArray(messages.results) ? messages.results : [])
|
||||
setDetailMessagesNextCursor(messages.cursor ?? "")
|
||||
setDetailMessagesHasMore(Boolean(messages.hasMore))
|
||||
} catch (error) {
|
||||
@@ -481,7 +481,8 @@ export default function DashboardConversationsPage() {
|
||||
cursor,
|
||||
limit: 20,
|
||||
})
|
||||
setDetailMessages((prev) => [...page.results, ...prev])
|
||||
const nextResults = Array.isArray(page.results) ? page.results : []
|
||||
setDetailMessages((prev) => [...nextResults, ...prev])
|
||||
setDetailMessagesNextCursor(page.cursor ?? "")
|
||||
setDetailMessagesHasMore(Boolean(page.hasMore))
|
||||
} catch (error) {
|
||||
|
||||
@@ -14,7 +14,7 @@ export type PageResult<T> = {
|
||||
}
|
||||
|
||||
export type CursorResult<T> = {
|
||||
results: T[]
|
||||
results?: T[] | null
|
||||
cursor: string
|
||||
hasMore: boolean
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user