forked from open-webui/open-webui
		
	Merge pull request #1339 from asedmammad/feat/chat-autocomplete-tags
feat: Chat autocomplete tags
This commit is contained in:
		
						commit
						bbc34d9be5
					
				
					 1 changed files with 19 additions and 10 deletions
				
			
		|  | @ -1,24 +1,24 @@ | ||||||
| <script lang="ts"> | <script lang="ts"> | ||||||
| 	import { createEventDispatcher, getContext } from 'svelte'; | 	import { createEventDispatcher, getContext } from 'svelte'; | ||||||
|  | 	import { tags } from '$lib/stores'; | ||||||
| 	const dispatch = createEventDispatcher(); | 	const dispatch = createEventDispatcher(); | ||||||
| 
 | 
 | ||||||
| 	const i18n = getContext('i18n'); | 	const i18n = getContext('i18n'); | ||||||
| 
 | 
 | ||||||
| 	let showTagInput = false; | 	let showTagInput = false; | ||||||
| 	let tagName = ''; | 	let tagName = ''; | ||||||
|  | 
 | ||||||
|  | 	const addTagHandler = async () => { | ||||||
|  | 		dispatch('add', tagName); | ||||||
|  | 		tagName = ''; | ||||||
|  | 		showTagInput = false; | ||||||
|  | 	}; | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <div class="flex space-x-1 pl-1.5"> | <div class="flex space-x-1 pl-1.5"> | ||||||
| 	{#if showTagInput} | 	{#if showTagInput} | ||||||
| 		<div class="flex items-center"> | 		<div class="flex items-center"> | ||||||
| 			<button | 			<button type="button" on:click={addTagHandler}> | ||||||
| 				type="button" |  | ||||||
| 				on:click={() => { |  | ||||||
| 					dispatch('add', tagName); |  | ||||||
| 					tagName = ''; |  | ||||||
| 					showTagInput = false; |  | ||||||
| 				}} |  | ||||||
| 			> |  | ||||||
| 				<svg | 				<svg | ||||||
| 					xmlns="http://www.w3.org/2000/svg" | 					xmlns="http://www.w3.org/2000/svg" | ||||||
| 					viewBox="0 0 16 16" | 					viewBox="0 0 16 16" | ||||||
|  | @ -36,10 +36,19 @@ | ||||||
| 				bind:value={tagName} | 				bind:value={tagName} | ||||||
| 				class=" pl-2 cursor-pointer self-center text-xs h-fit bg-transparent outline-none line-clamp-1 w-[8rem]" | 				class=" pl-2 cursor-pointer self-center text-xs h-fit bg-transparent outline-none line-clamp-1 w-[8rem]" | ||||||
| 				placeholder={$i18n.t('Add a tag')} | 				placeholder={$i18n.t('Add a tag')} | ||||||
|  | 				list="tagOptions" | ||||||
|  | 				on:keydown={(event) => { | ||||||
|  | 					if (event.key === 'Enter') { | ||||||
|  | 						addTagHandler(); | ||||||
|  | 					} | ||||||
|  | 				}} | ||||||
| 			/> | 			/> | ||||||
|  | 			<datalist id="tagOptions"> | ||||||
|  | 				{#each $tags as tag} | ||||||
|  | 					<option value={tag.name} /> | ||||||
|  | 				{/each} | ||||||
|  | 			</datalist> | ||||||
| 		</div> | 		</div> | ||||||
| 
 |  | ||||||
| 		<!-- TODO: Tag Suggestions --> |  | ||||||
| 	{/if} | 	{/if} | ||||||
| 
 | 
 | ||||||
| 	<button | 	<button | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy Jaeryang Baek
						Timothy Jaeryang Baek