mirror of
https://github.com/open-webui/open-webui
synced 2025-05-20 13:15:13 +00:00
enh: user message edit
This commit is contained in:
parent
d79d3f1352
commit
330eb0fbb1
@ -51,34 +51,43 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const confirmEditMessage = async (messageId, content) => {
|
const confirmEditMessage = async (messageId, content, submit = true) => {
|
||||||
let userPrompt = content;
|
if (submit) {
|
||||||
let userMessageId = uuidv4();
|
let userPrompt = content;
|
||||||
|
let userMessageId = uuidv4();
|
||||||
|
|
||||||
let userMessage = {
|
let userMessage = {
|
||||||
id: userMessageId,
|
id: userMessageId,
|
||||||
parentId: history.messages[messageId].parentId,
|
parentId: history.messages[messageId].parentId,
|
||||||
childrenIds: [],
|
childrenIds: [],
|
||||||
role: 'user',
|
role: 'user',
|
||||||
content: userPrompt,
|
content: userPrompt,
|
||||||
...(history.messages[messageId].files && { files: history.messages[messageId].files }),
|
...(history.messages[messageId].files && { files: history.messages[messageId].files }),
|
||||||
models: selectedModels
|
models: selectedModels
|
||||||
};
|
};
|
||||||
|
|
||||||
let messageParentId = history.messages[messageId].parentId;
|
let messageParentId = history.messages[messageId].parentId;
|
||||||
|
|
||||||
if (messageParentId !== null) {
|
if (messageParentId !== null) {
|
||||||
history.messages[messageParentId].childrenIds = [
|
history.messages[messageParentId].childrenIds = [
|
||||||
...history.messages[messageParentId].childrenIds,
|
...history.messages[messageParentId].childrenIds,
|
||||||
userMessageId
|
userMessageId
|
||||||
];
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
history.messages[userMessageId] = userMessage;
|
||||||
|
history.currentId = userMessageId;
|
||||||
|
|
||||||
|
await tick();
|
||||||
|
await sendPrompt(userPrompt, userMessageId);
|
||||||
|
} else {
|
||||||
|
history.messages[messageId].content = content;
|
||||||
|
await tick();
|
||||||
|
await updateChatById(localStorage.token, chatId, {
|
||||||
|
messages: messages,
|
||||||
|
history: history
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
history.messages[userMessageId] = userMessage;
|
|
||||||
history.currentId = userMessageId;
|
|
||||||
|
|
||||||
await tick();
|
|
||||||
await sendPrompt(userPrompt, userMessageId);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateChatMessages = async () => {
|
const updateChatMessages = async () => {
|
||||||
|
@ -45,8 +45,8 @@
|
|||||||
messageEditTextAreaElement?.focus();
|
messageEditTextAreaElement?.focus();
|
||||||
};
|
};
|
||||||
|
|
||||||
const editMessageConfirmHandler = async () => {
|
const editMessageConfirmHandler = async (submit = true) => {
|
||||||
confirmEditMessage(message.id, editedContent);
|
confirmEditMessage(message.id, editedContent, submit);
|
||||||
|
|
||||||
edit = false;
|
edit = false;
|
||||||
editedContent = '';
|
editedContent = '';
|
||||||
@ -140,26 +140,40 @@
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class=" mt-2 mb-1 flex justify-end space-x-1.5 text-sm font-medium">
|
<div class=" mt-2 mb-1 flex justify-between text-sm font-medium">
|
||||||
<button
|
<div>
|
||||||
id="close-edit-message-button"
|
<button
|
||||||
class="px-4 py-2 bg-white dark:bg-gray-900 hover:bg-gray-100 text-gray-800 dark:text-gray-100 transition rounded-3xl"
|
id="save-edit-message-button"
|
||||||
on:click={() => {
|
class=" px-4 py-2 bg-gray-50 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 border dark:border-gray-700 text-gray-700 dark:text-gray-200 transition rounded-3xl"
|
||||||
cancelEditMessage();
|
on:click={() => {
|
||||||
}}
|
editMessageConfirmHandler(false);
|
||||||
>
|
}}
|
||||||
{$i18n.t('Cancel')}
|
>
|
||||||
</button>
|
{$i18n.t('Save')}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<button
|
<div class="flex space-x-1.5">
|
||||||
id="save-edit-message-button"
|
<button
|
||||||
class=" px-4 py-2 bg-gray-900 dark:bg-white hover:bg-gray-850 text-gray-100 dark:text-gray-800 transition rounded-3xl"
|
id="close-edit-message-button"
|
||||||
on:click={() => {
|
class="px-4 py-2 bg-white dark:bg-gray-900 hover:bg-gray-100 text-gray-800 dark:text-gray-100 transition rounded-3xl"
|
||||||
editMessageConfirmHandler();
|
on:click={() => {
|
||||||
}}
|
cancelEditMessage();
|
||||||
>
|
}}
|
||||||
{$i18n.t('Send')}
|
>
|
||||||
</button>
|
{$i18n.t('Cancel')}
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
id="save-edit-message-button"
|
||||||
|
class=" px-4 py-2 bg-gray-900 dark:bg-white hover:bg-gray-850 text-gray-100 dark:text-gray-800 transition rounded-3xl"
|
||||||
|
on:click={() => {
|
||||||
|
editMessageConfirmHandler();
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{$i18n.t('Send')}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{:else}
|
{:else}
|
||||||
|
Loading…
Reference in New Issue
Block a user