From 2a95cbcef7e9ecb59c279ab767170d35150e4887 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Wed, 24 Sep 2025 11:11:26 -0500 Subject: [PATCH] enh: attach webpage input menu --- src/lib/components/chat/MessageInput.svelte | 3 + .../MessageInput/AttachWebpageModal.svelte | 88 +++++++++++++++++++ .../chat/MessageInput/InputMenu.svelte | 22 +++++ 3 files changed, 113 insertions(+) create mode 100644 src/lib/components/chat/MessageInput/AttachWebpageModal.svelte diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index d56a6bf57a..049c759391 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -1414,6 +1414,9 @@ console.error('OneDrive Error:', error); } }} + onUpload={async (e) => { + dispatch('upload', e); + }} onClose={async () => { await tick(); diff --git a/src/lib/components/chat/MessageInput/AttachWebpageModal.svelte b/src/lib/components/chat/MessageInput/AttachWebpageModal.svelte new file mode 100644 index 0000000000..9105c10362 --- /dev/null +++ b/src/lib/components/chat/MessageInput/AttachWebpageModal.svelte @@ -0,0 +1,88 @@ + + + +
+
+

+ {$i18n.t('Attach Webpage')} +

+ +
+ +
+
{ + e.preventDefault(); + submitHandler(); + }} + > +
+ +
+ + + +
+ +
+
+
+
+
diff --git a/src/lib/components/chat/MessageInput/InputMenu.svelte b/src/lib/components/chat/MessageInput/InputMenu.svelte index a8a44944c3..3c27ba31b6 100644 --- a/src/lib/components/chat/MessageInput/InputMenu.svelte +++ b/src/lib/components/chat/MessageInput/InputMenu.svelte @@ -24,6 +24,8 @@ import Chats from './InputMenu/Chats.svelte'; import Notes from './InputMenu/Notes.svelte'; import Knowledge from './InputMenu/Knowledge.svelte'; + import Link from '$lib/components/icons/Link.svelte'; + import AttachWebpageModal from './AttachWebpageModal.svelte'; const i18n = getContext('i18n'); @@ -39,11 +41,14 @@ export let uploadGoogleDriveHandler: Function; export let uploadOneDriveHandler: Function; + export let onUpload: Function; export let onClose: Function; let show = false; let tab = ''; + let showAttachWebpageModal = false; + let fileUploadEnabled = true; $: fileUploadEnabled = fileUploadCapableModels.length === selectedModels.length && @@ -78,6 +83,13 @@ }; + { + onUpload(e); + }} +/> + + { + showAttachWebpageModal = true; + }} + > + +
{$i18n.t('Attach Webpage')}
+
+ {#if $config?.features?.enable_notes ?? false}