diff options
Diffstat (limited to 'llama.cpp/tools/server/webui/src/lib/components/app/dialogs/DialogConversationSelection.svelte')
| -rw-r--r-- | llama.cpp/tools/server/webui/src/lib/components/app/dialogs/DialogConversationSelection.svelte | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/llama.cpp/tools/server/webui/src/lib/components/app/dialogs/DialogConversationSelection.svelte b/llama.cpp/tools/server/webui/src/lib/components/app/dialogs/DialogConversationSelection.svelte new file mode 100644 index 0000000..1f8ea64 --- /dev/null +++ b/llama.cpp/tools/server/webui/src/lib/components/app/dialogs/DialogConversationSelection.svelte @@ -0,0 +1,68 @@ +<script lang="ts"> + import * as Dialog from '$lib/components/ui/dialog'; + import { ConversationSelection } from '$lib/components/app'; + + interface Props { + conversations: DatabaseConversation[]; + messageCountMap?: Map<string, number>; + mode: 'export' | 'import'; + onCancel: () => void; + onConfirm: (selectedConversations: DatabaseConversation[]) => void; + open?: boolean; + } + + let { + conversations, + messageCountMap = new Map(), + mode, + onCancel, + onConfirm, + open = $bindable(false) + }: Props = $props(); + + let conversationSelectionRef: ConversationSelection | undefined = $state(); + + let previousOpen = $state(false); + + $effect(() => { + if (open && !previousOpen && conversationSelectionRef) { + conversationSelectionRef.reset(); + } else if (!open && previousOpen) { + onCancel(); + } + + previousOpen = open; + }); +</script> + +<Dialog.Root bind:open> + <Dialog.Portal> + <Dialog.Overlay class="z-[1000000]" /> + + <Dialog.Content class="z-[1000001] max-w-2xl"> + <Dialog.Header> + <Dialog.Title> + Select Conversations to {mode === 'export' ? 'Export' : 'Import'} + </Dialog.Title> + <Dialog.Description> + {#if mode === 'export'} + Choose which conversations you want to export. Selected conversations will be downloaded + as a JSON file. + {:else} + Choose which conversations you want to import. Selected conversations will be merged + with your existing conversations. + {/if} + </Dialog.Description> + </Dialog.Header> + + <ConversationSelection + bind:this={conversationSelectionRef} + {conversations} + {messageCountMap} + {mode} + {onCancel} + {onConfirm} + /> + </Dialog.Content> + </Dialog.Portal> +</Dialog.Root> |
