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">
+