From b61138e67629c473c01a45f88e2943d286211304 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 3 Feb 2025 19:54:20 -0800 Subject: [PATCH] refac: message input --- src/lib/components/chat/MessageInput.svelte | 77 ++++++++++++++----- .../chat/MessageInput/InputMenu.svelte | 64 --------------- src/lib/components/icons/CommandLine.svelte | 19 +++++ src/lib/components/icons/Photo.svelte | 21 +++++ 4 files changed, 99 insertions(+), 82 deletions(-) create mode 100644 src/lib/components/icons/CommandLine.svelte create mode 100644 src/lib/components/icons/Photo.svelte diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index b277479bf..ef12211d5 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -22,24 +22,27 @@ import { blobToFile, compressImage, createMessagesList, findWordIndices } from '$lib/utils'; import { transcribeAudio } from '$lib/apis/audio'; import { uploadFile } from '$lib/apis/files'; - import { getTools } from '$lib/apis/tools'; + import { generateAutoCompletion } from '$lib/apis'; + import { deleteFileById } from '$lib/apis/files'; import { WEBUI_BASE_URL, WEBUI_API_BASE_URL, PASTED_TEXT_CHARACTER_LIMIT } from '$lib/constants'; - import Tooltip from '../common/Tooltip.svelte'; import InputMenu from './MessageInput/InputMenu.svelte'; - import Headphone from '../icons/Headphone.svelte'; import VoiceRecording from './MessageInput/VoiceRecording.svelte'; - import FileItem from '../common/FileItem.svelte'; import FilesOverlay from './MessageInput/FilesOverlay.svelte'; import Commands from './MessageInput/Commands.svelte'; - import XMark from '../icons/XMark.svelte'; + import RichTextInput from '../common/RichTextInput.svelte'; - import { generateAutoCompletion } from '$lib/apis'; - import { error, text } from '@sveltejs/kit'; + import Tooltip from '../common/Tooltip.svelte'; + import FileItem from '../common/FileItem.svelte'; import Image from '../common/Image.svelte'; - import { deleteFileById } from '$lib/apis/files'; + + import XMark from '../icons/XMark.svelte'; + import Headphone from '../icons/Headphone.svelte'; import GlobeAlt from '../icons/GlobeAlt.svelte'; + import PhotoSolid from '../icons/PhotoSolid.svelte'; + import Photo from '../icons/Photo.svelte'; + import CommandLine from '../icons/CommandLine.svelte'; const i18n = getContext('i18n'); @@ -1112,19 +1115,57 @@ - {#if $config?.features?.enable_web_search} - + {#if $_user} + {#if $config?.features?.enable_web_search && ($_user.role === 'admin' || $_user?.permissions?.features?.web_search)} + + + + {/if} + + {#if $config?.features?.enable_image_generation && ($_user.role === 'admin' || $_user?.permissions?.features?.image_generation)} + + + + {/if} + + @@ -1187,7 +1228,7 @@ - {/if} - - - - {#if showWebSearch} - - {/if} - - {#if showImageGeneration || showWebSearch} -
- {/if} - {#if !$mobile} + export let className = 'w-4 h-4'; + export let strokeWidth = '1.5'; + + + + + diff --git a/src/lib/components/icons/Photo.svelte b/src/lib/components/icons/Photo.svelte new file mode 100644 index 000000000..2933ba633 --- /dev/null +++ b/src/lib/components/icons/Photo.svelte @@ -0,0 +1,21 @@ + + +