| | import { getContext, setContext } from 'svelte';
|
| |
|
| | 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('chat-message-edit');
|
| |
|
| | |
| | |
| |
|
| | export function setMessageEditContext(ctx: MessageEditContext): MessageEditContext {
|
| | return setContext(MESSAGE_EDIT_KEY, ctx);
|
| | }
|
| |
|
| | |
| | |
| |
|
| | export function getMessageEditContext(): MessageEditContext {
|
| | return getContext(MESSAGE_EDIT_KEY);
|
| | }
|
| |
|