diff --git a/src/routes/channel/[channel]/+page.server.ts b/src/routes/channel/[channel]/+page.server.ts index fb6b8f4..2d43409 100644 --- a/src/routes/channel/[channel]/+page.server.ts +++ b/src/routes/channel/[channel]/+page.server.ts @@ -1,6 +1,7 @@ import { db } from '$lib/server/db'; import type { TypeMessage } from '$lib/types'; import { error } from '@sveltejs/kit'; +import type { Actions } from '@sveltejs/kit'; export async function load({ params }): Promise<{ messages: TypeMessage[] }> { let messages: TypeMessage[]; @@ -25,3 +26,7 @@ export async function load({ params }): Promise<{ messages: TypeMessage[] }> { messages: messages ?? [], }; } + +export const actions = { + sendMessage: async ({ request }) => {}, +} satisfies Actions; diff --git a/src/routes/channel/[channel]/+page.svelte b/src/routes/channel/[channel]/+page.svelte index d9917bc..922fb31 100644 --- a/src/routes/channel/[channel]/+page.svelte +++ b/src/routes/channel/[channel]/+page.svelte @@ -18,11 +18,20 @@ let msg: string = $state(''); const channel: string = $derived(page.params.channel); let textareaRef: HTMLElement | undefined = $state(); + let submitRef: HTMLButtonElement | undefined = $state(); - // Connect on page load onMount(() => { + // Connect on page load socket = new Websocket(io()); socket.connect(); + + // Submit on textarea enter + textareaRef?.addEventListener('keypress', (e) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + submitRef?.click(); + } + }); }); // Update channel on page refresh @@ -61,5 +70,6 @@ placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50"> +