Import/Export UX improvements (#16619)
* webui : added download action (#13552) * webui : import and export (for all conversations) * webui : fixed download-format, import of one conversation * webui : add ExportedConversations type for chat import/export * feat: Update naming & order * chore: Linting * feat: Import/Export UX improvements * chore: update webui build output * feat: Update UI placement of Import/Export tab in Chat Settings Dialog * refactor: Cleanup chore: update webui build output * feat: Enable shift-click multiple conversation items selection * chore: update webui static build * chore: update webui static build --------- Co-authored-by: Sascha Rogmann <github@rogmann.org>
This commit is contained in:
committed by
GitHub
parent
13f2cfad41
commit
0e4a0cf2fa
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Utility functions for conversation data manipulation
|
||||
*/
|
||||
|
||||
/**
|
||||
* Creates a map of conversation IDs to their message counts from exported conversation data
|
||||
* @param exportedData - Array of exported conversations with their messages
|
||||
* @returns Map of conversation ID to message count
|
||||
*/
|
||||
export function createMessageCountMap(
|
||||
exportedData: Array<{ conv: DatabaseConversation; messages: DatabaseMessage[] }>
|
||||
): Map<string, number> {
|
||||
const countMap = new Map<string, number>();
|
||||
|
||||
for (const item of exportedData) {
|
||||
countMap.set(item.conv.id, item.messages.length);
|
||||
}
|
||||
|
||||
return countMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the message count for a specific conversation from the count map
|
||||
* @param conversationId - The ID of the conversation
|
||||
* @param countMap - Map of conversation IDs to message counts
|
||||
* @returns The message count, or 0 if not found
|
||||
*/
|
||||
export function getMessageCount(conversationId: string, countMap: Map<string, number>): number {
|
||||
return countMap.get(conversationId) ?? 0;
|
||||
}
|
||||
Reference in New Issue
Block a user