From 5de0a961acbceb09c3337fca4d804244f6d1fec5 Mon Sep 17 00:00:00 2001 From: Aidan Bleser Date: Wed, 18 Jun 2025 06:02:42 -0500 Subject: [PATCH] differing mobile layout --- src/lib/backend/convex/conversations.ts | 14 +- src/lib/backend/convex/messages.ts | 14 +- src/lib/backend/convex/storage.ts | 1 - src/lib/components/ui/image-modal/index.ts | 2 +- src/lib/utils/image-compression.ts | 2 +- src/lib/utils/model-capabilities.ts | 2 +- src/routes/account/models/model-card.svelte | 2 +- src/routes/api/cancel-generation/+server.ts | 2 +- src/routes/api/cancel-generation/call.ts | 2 +- src/routes/api/generate-message/cache.ts | 2 +- src/routes/chat/model-picker.svelte | 138 +++++++++++++------- 11 files changed, 117 insertions(+), 64 deletions(-) diff --git a/src/lib/backend/convex/conversations.ts b/src/lib/backend/convex/conversations.ts index aaf2b78..0be07a4 100644 --- a/src/lib/backend/convex/conversations.ts +++ b/src/lib/backend/convex/conversations.ts @@ -89,11 +89,15 @@ export const createAndAddMessage = mutation({ content: v.string(), role: messageRoleValidator, session_token: v.string(), - images: v.optional(v.array(v.object({ - url: v.string(), - storage_id: v.string(), - fileName: v.optional(v.string()), - }))), + images: v.optional( + v.array( + v.object({ + url: v.string(), + storage_id: v.string(), + fileName: v.optional(v.string()), + }) + ) + ), }, handler: async ( ctx, diff --git a/src/lib/backend/convex/messages.ts b/src/lib/backend/convex/messages.ts index 3df1f1f..161bf9a 100644 --- a/src/lib/backend/convex/messages.ts +++ b/src/lib/backend/convex/messages.ts @@ -41,11 +41,15 @@ export const create = mutation({ provider: v.optional(providerValidator), token_count: v.optional(v.number()), // Optional image attachments - images: v.optional(v.array(v.object({ - url: v.string(), - storage_id: v.string(), - fileName: v.optional(v.string()), - }))), + images: v.optional( + v.array( + v.object({ + url: v.string(), + storage_id: v.string(), + fileName: v.optional(v.string()), + }) + ) + ), }, handler: async (ctx, args): Promise> => { const session = await ctx.runQuery(api.betterAuth.publicGetSession, { diff --git a/src/lib/backend/convex/storage.ts b/src/lib/backend/convex/storage.ts index 6b14d40..db49350 100644 --- a/src/lib/backend/convex/storage.ts +++ b/src/lib/backend/convex/storage.ts @@ -55,4 +55,3 @@ export const deleteFile = mutation({ await ctx.storage.delete(args.storage_id); }, }); - diff --git a/src/lib/components/ui/image-modal/index.ts b/src/lib/components/ui/image-modal/index.ts index 0a335d0..f262f61 100644 --- a/src/lib/components/ui/image-modal/index.ts +++ b/src/lib/components/ui/image-modal/index.ts @@ -1 +1 @@ -export { default as ImageModal } from './image-modal.svelte'; \ No newline at end of file +export { default as ImageModal } from './image-modal.svelte'; diff --git a/src/lib/utils/image-compression.ts b/src/lib/utils/image-compression.ts index d48e223..d984eed 100644 --- a/src/lib/utils/image-compression.ts +++ b/src/lib/utils/image-compression.ts @@ -70,4 +70,4 @@ export function compressImage(file: File, maxSizeBytes: number = 1024 * 1024): P img.src = URL.createObjectURL(file); }); -} \ No newline at end of file +} diff --git a/src/lib/utils/model-capabilities.ts b/src/lib/utils/model-capabilities.ts index 94d2e3e..c3f4252 100644 --- a/src/lib/utils/model-capabilities.ts +++ b/src/lib/utils/model-capabilities.ts @@ -6,4 +6,4 @@ export function supportsImages(model: OpenRouterModel): boolean { export function getImageSupportedModels(models: OpenRouterModel[]): OpenRouterModel[] { return models.filter(supportsImages); -} \ No newline at end of file +} diff --git a/src/routes/account/models/model-card.svelte b/src/routes/account/models/model-card.svelte index 41adea5..a76d7f4 100644 --- a/src/routes/account/models/model-card.svelte +++ b/src/routes/account/models/model-card.svelte @@ -52,7 +52,7 @@
{model.name} - +
enabled, toggleEnabled} {disabled} />
diff --git a/src/routes/api/cancel-generation/+server.ts b/src/routes/api/cancel-generation/+server.ts index 3e87907..eb76bdf 100644 --- a/src/routes/api/cancel-generation/+server.ts +++ b/src/routes/api/cancel-generation/+server.ts @@ -85,4 +85,4 @@ export const POST: RequestHandler = async ({ request }) => { } return response({ ok: true, cancelled }); -}; \ No newline at end of file +}; diff --git a/src/routes/api/cancel-generation/call.ts b/src/routes/api/cancel-generation/call.ts index 628154a..f4bafea 100644 --- a/src/routes/api/cancel-generation/call.ts +++ b/src/routes/api/cancel-generation/call.ts @@ -14,4 +14,4 @@ export async function callCancelGeneration(args: CancelGenerationRequestBody) { ).map((r) => r.json() as Promise); return res; -} \ No newline at end of file +} diff --git a/src/routes/api/generate-message/cache.ts b/src/routes/api/generate-message/cache.ts index 93522ea..c314bf3 100644 --- a/src/routes/api/generate-message/cache.ts +++ b/src/routes/api/generate-message/cache.ts @@ -1,2 +1,2 @@ // Global cache for AbortControllers keyed by conversation ID -export const generationAbortControllers = new Map(); \ No newline at end of file +export const generationAbortControllers = new Map(); diff --git a/src/routes/chat/model-picker.svelte b/src/routes/chat/model-picker.svelte index b998dcf..d68df71 100644 --- a/src/routes/chat/model-picker.svelte +++ b/src/routes/chat/model-picker.svelte @@ -111,7 +111,7 @@ return 'other'; } - let search = $state('') + let search = $state(''); const filteredModels = $derived( fuzzysearch({ @@ -197,7 +197,7 @@ }; } - const isMobile = new IsMobile() + const isMobile = new IsMobile(); {#if enabledArr.length === 0} @@ -230,8 +230,14 @@ {...popover.content} class="border-border bg-popover mt-1 max-h-200 min-w-80 flex-col overflow-hidden rounded-xl border p-0 backdrop-blur-sm data-[open]:flex" > - -