From 13f40df7c4ea8ddb391603874680e5d04768c861 Mon Sep 17 00:00:00 2001 From: "Thomas G. Lopes" <26071571+TGlide@users.noreply.github.com> Date: Tue, 17 Jun 2025 23:14:18 +0100 Subject: [PATCH] fix some issues --- src/lib/backend/convex/storage.ts | 6 +- .../ui/file-upload/file-upload.svelte | 131 ------------------ src/lib/components/ui/file-upload/index.ts | 1 - src/routes/chat/+layout.svelte | 9 +- src/routes/chat/[id]/message.svelte | 29 ++-- 5 files changed, 19 insertions(+), 157 deletions(-) delete mode 100644 src/lib/components/ui/file-upload/file-upload.svelte delete mode 100644 src/lib/components/ui/file-upload/index.ts diff --git a/src/lib/backend/convex/storage.ts b/src/lib/backend/convex/storage.ts index c672e79..6b14d40 100644 --- a/src/lib/backend/convex/storage.ts +++ b/src/lib/backend/convex/storage.ts @@ -1,6 +1,7 @@ import { v } from 'convex/values'; import { api } from './_generated/api'; -import { mutation, query } from './_generated/server'; +import { query } from './_generated/server'; +import { mutation } from './functions'; export const generateUploadUrl = mutation({ args: { @@ -53,4 +54,5 @@ export const deleteFile = mutation({ await ctx.storage.delete(args.storage_id); }, -}); \ No newline at end of file +}); + diff --git a/src/lib/components/ui/file-upload/file-upload.svelte b/src/lib/components/ui/file-upload/file-upload.svelte deleted file mode 100644 index 8395e9c..0000000 --- a/src/lib/components/ui/file-upload/file-upload.svelte +++ /dev/null @@ -1,131 +0,0 @@ - - -
- {#if selectedFiles.length > 0} -
- {#each selectedFiles as file, index} -
- Uploaded - -
- {/each} -
- {/if} - -
- -
- {#if isUploading} -
-

Uploading...

- {:else if fileUpload.isDragging} - -

Drop images here

- {:else} - -

- Click to upload or drag and drop images -

-

PNG, JPG, GIF up to 10MB

- {/if} -
-
-
\ No newline at end of file diff --git a/src/lib/components/ui/file-upload/index.ts b/src/lib/components/ui/file-upload/index.ts deleted file mode 100644 index 8048151..0000000 --- a/src/lib/components/ui/file-upload/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as FileUpload } from './file-upload.svelte'; \ No newline at end of file diff --git a/src/routes/chat/+layout.svelte b/src/routes/chat/+layout.svelte index ea99540..5a9e9c6 100644 --- a/src/routes/chat/+layout.svelte +++ b/src/routes/chat/+layout.svelte @@ -6,24 +6,25 @@ import { useCachedQuery } from '$lib/cache/cached-query.svelte.js'; import * as Icons from '$lib/components/icons'; import { Button } from '$lib/components/ui/button'; + import { ImageModal } from '$lib/components/ui/image-modal'; import { LightSwitch } from '$lib/components/ui/light-switch/index.js'; import { callModal } from '$lib/components/ui/modal/global-modal.svelte'; import * as Sidebar from '$lib/components/ui/sidebar'; import Tooltip from '$lib/components/ui/tooltip.svelte'; + import { cmdOrCtrl } from '$lib/hooks/is-mac.svelte.js'; import { TextareaAutosize } from '$lib/spells/textarea-autosize.svelte.js'; import { models } from '$lib/state/models.svelte'; import { usePrompt } from '$lib/state/prompt.svelte.js'; import { session } from '$lib/state/session.svelte.js'; import { settings } from '$lib/state/settings.svelte.js'; import { Provider } from '$lib/types'; + import { compressImage } from '$lib/utils/image-compression'; import { isString } from '$lib/utils/is.js'; import { supportsImages } from '$lib/utils/model-capabilities'; import { omit, pick } from '$lib/utils/object.js'; import { cn } from '$lib/utils/utils.js'; - import { compressImage } from '$lib/utils/image-compression'; import { useConvexClient } from 'convex-svelte'; import { FileUpload, Popover } from 'melt/builders'; - import { ImageModal } from '$lib/components/ui/image-modal'; import { Avatar } from 'melt/components'; import { Debounced, ElementSize, IsMounted, ScrollState } from 'runed'; import SendIcon from '~icons/lucide/arrow-up'; @@ -34,12 +35,10 @@ import PinIcon from '~icons/lucide/pin'; import PinOffIcon from '~icons/lucide/pin-off'; import Settings2Icon from '~icons/lucide/settings-2'; - import XIcon from '~icons/lucide/x'; import UploadIcon from '~icons/lucide/upload'; + import XIcon from '~icons/lucide/x'; import { callGenerateMessage } from '../api/generate-message/call.js'; import ModelPicker from './model-picker.svelte'; - import { cmdOrCtrl } from '$lib/hooks/is-mac.svelte.js'; - import { Provider } from '$lib/types.js'; const client = useConvexClient(); diff --git a/src/routes/chat/[id]/message.svelte b/src/routes/chat/[id]/message.svelte index 31962fc..5e85a4a 100644 --- a/src/routes/chat/[id]/message.svelte +++ b/src/routes/chat/[id]/message.svelte @@ -26,22 +26,14 @@ let imageModal = $state<{ open: boolean; imageUrl: string; fileName: string }>({ open: false, imageUrl: '', - fileName: '' + fileName: '', }); function openImageModal(imageUrl: string, fileName: string) { imageModal = { open: true, imageUrl, - fileName - }; - } - - function closeImageModal() { - imageModal = { - open: false, - imageUrl: '', - fileName: '' + fileName, }; } @@ -49,17 +41,17 @@ {#if message.role !== 'system' && !(message.role === 'assistant' && message.content.length === 0)}
{#if message.images && message.images.length > 0} -
- {#each message.images as image} +
+ {#each message.images as image (image.storage_id)} {/each} @@ -72,7 +64,9 @@ {#snippet failed(error)}
Error rendering markdown: -
{error instanceof Error ? error.message : String(error)}
+
{error instanceof Error ? error.message : String(error)}
{/snippet} @@ -101,6 +95,5 @@ bind:open={imageModal.open} imageUrl={imageModal.imageUrl} fileName={imageModal.fileName} - onClose={closeImageModal} /> {/if}