diff --git a/Dockerfile b/Dockerfile index ebe6286d7fe..a414d93ed2f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -90,4 +90,6 @@ ENV BODY_SIZE_LIMIT=15728640 COPY --from=builder --chown=1000 /app/build /app/build COPY --from=builder --chown=1000 /app/node_modules /app/node_modules +RUN apt -y update && apt-get install -y curl dnsutils + CMD ["/bin/bash", "-c", "/app/entrypoint.sh"] diff --git a/src/lib/components/chat/ChatInput.svelte b/src/lib/components/chat/ChatInput.svelte index 129c1d2e4d2..d5e64264eeb 100644 --- a/src/lib/components/chat/ChatInput.svelte +++ b/src/lib/components/chat/ChatInput.svelte @@ -25,6 +25,7 @@ toggleServer, } from "$lib/stores/mcpServers"; import { getMcpServerFaviconUrl } from "$lib/utils/favicon"; + import { page } from "$app/state"; interface Props { files?: File[]; @@ -76,6 +77,7 @@ let fileInputEl: HTMLInputElement | undefined = $state(); let isUrlModalOpen = $state(false); let isMcpManagerOpen = $state(false); + let isDropdownOpen = $state(false); function openPickerWithAccept(accept: string) { if (!fileInputEl) return; @@ -107,6 +109,7 @@ : Promise.resolve(); async function focusTextarea() { + if (page.data.shared && page.data.loginEnabled && !page.data.user) return; if (!textareaElement || textareaElement.disabled || isVirtualKeyboard()) return; if (typeof document !== "undefined" && document.activeElement === textareaElement) return; @@ -177,6 +180,9 @@ } function handleFocus() { + if (requireAuthUser()) { + return; + } if (blurTimeout) { clearTimeout(blurTimeout); blurTimeout = null; @@ -251,7 +257,16 @@ accept={mimeTypes.join(",")} /> - + { + if (open && requireAuthUser()) { + isDropdownOpen = false; + return; + } + isDropdownOpen = open; + }} + >