forked from open-webui/open-webui
Merge pull request #781 from open-webui/prompt-clipboard
feat: CLIPBOARD variable for prompt preset
This commit is contained in:
commit
9c3be59015
2 changed files with 21 additions and 3 deletions
|
@ -2,6 +2,7 @@
|
||||||
import { prompts } from '$lib/stores';
|
import { prompts } from '$lib/stores';
|
||||||
import { findWordIndices } from '$lib/utils';
|
import { findWordIndices } from '$lib/utils';
|
||||||
import { tick } from 'svelte';
|
import { tick } from 'svelte';
|
||||||
|
import toast from 'svelte-french-toast';
|
||||||
|
|
||||||
export let prompt = '';
|
export let prompt = '';
|
||||||
let selectedCommandIdx = 0;
|
let selectedCommandIdx = 0;
|
||||||
|
@ -24,7 +25,18 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
const confirmCommand = async (command) => {
|
const confirmCommand = async (command) => {
|
||||||
prompt = command.content;
|
let text = command.content;
|
||||||
|
|
||||||
|
if (command.content.includes('{{CLIPBOARD}}')) {
|
||||||
|
const clipboardText = await navigator.clipboard.readText().catch((err) => {
|
||||||
|
toast.error('Failed to read clipboard contents');
|
||||||
|
return '{{CLIPBOARD}}';
|
||||||
|
});
|
||||||
|
|
||||||
|
text = command.content.replaceAll('{{CLIPBOARD}}', clipboardText);
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt = text;
|
||||||
|
|
||||||
const chatInputElement = document.getElementById('chat-textarea');
|
const chatInputElement = document.getElementById('chat-textarea');
|
||||||
|
|
||||||
|
|
|
@ -171,12 +171,18 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="text-xs text-gray-400 dark:text-gray-500">
|
<div class="text-xs text-gray-400 dark:text-gray-500">
|
||||||
Format your variables using square brackets like this: <span
|
ⓘ Format your variables using square brackets like this: <span
|
||||||
class=" text-gray-600 dark:text-gray-300 font-medium">[variable]</span
|
class=" text-gray-600 dark:text-gray-300 font-medium">[variable]</span
|
||||||
>
|
>
|
||||||
. Make sure to enclose them with
|
. Make sure to enclose them with
|
||||||
<span class=" text-gray-600 dark:text-gray-300 font-medium">'['</span>
|
<span class=" text-gray-600 dark:text-gray-300 font-medium">'['</span>
|
||||||
and <span class=" text-gray-600 dark:text-gray-300 font-medium">']'</span> .
|
and <span class=" text-gray-600 dark:text-gray-300 font-medium">']'</span>.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="text-xs text-gray-400 dark:text-gray-500">
|
||||||
|
Utilize <span class=" text-gray-600 dark:text-gray-300 font-medium"
|
||||||
|
>{`{{CLIPBOARD}}`}</span
|
||||||
|
> variable to have them replaced with clipboard content.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue