mirror of
https://github.com/ggml-org/llama.cpp.git
synced 2026-08-05 09:30:49 -05:00
* refactor: Make `DialogConfirmation` extensible with children slot * feat: Add conversation forking logic * feat: Conversation forking UI * feat: Update delete/edit dialogs and logic for forks * refactor: Improve Chat Sidebar UX and add MCP Servers entry * refactor: Cleanup * feat: Update message in place when editing leaf nodes * chore: Cleanup * chore: Cleanup * chore: Cleanup * chore: Cleanup * chore: Cleanup * chore: Cleanup * refactor: Post-review improvements * chore: update webui build output * test: Update Storybook test * chore: update webui build output * chore: update webui build output
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import { getContext, setContext } from 'svelte';
|
|
import { CONTEXT_KEY_MESSAGE_EDIT } from '$lib/constants';
|
|
|
|
export interface MessageEditState {
|
|
readonly isEditing: boolean;
|
|
readonly editedContent: string;
|
|
readonly editedExtras: DatabaseMessageExtra[];
|
|
readonly editedUploadedFiles: ChatUploadedFile[];
|
|
readonly originalContent: string;
|
|
readonly originalExtras: DatabaseMessageExtra[];
|
|
readonly showSaveOnlyOption: boolean;
|
|
}
|
|
|
|
export interface MessageEditActions {
|
|
setContent: (content: string) => void;
|
|
setExtras: (extras: DatabaseMessageExtra[]) => void;
|
|
setUploadedFiles: (files: ChatUploadedFile[]) => void;
|
|
save: () => void;
|
|
saveOnly: () => void;
|
|
cancel: () => void;
|
|
startEdit: () => void;
|
|
}
|
|
|
|
export type MessageEditContext = MessageEditState & MessageEditActions;
|
|
|
|
const MESSAGE_EDIT_KEY = Symbol.for(CONTEXT_KEY_MESSAGE_EDIT);
|
|
|
|
/**
|
|
* Sets the message edit context. Call this in the parent component (ChatMessage.svelte).
|
|
*/
|
|
export function setMessageEditContext(ctx: MessageEditContext): MessageEditContext {
|
|
return setContext(MESSAGE_EDIT_KEY, ctx);
|
|
}
|
|
|
|
/**
|
|
* Gets the message edit context. Call this in child components.
|
|
*/
|
|
export function getMessageEditContext(): MessageEditContext {
|
|
return getContext(MESSAGE_EDIT_KEY);
|
|
}
|