mirror of
https://github.com/Blah-IM/Weblah.git
synced 2025-05-01 00:31:08 +00:00
38 lines
1.2 KiB
Svelte
38 lines
1.2 KiB
Svelte
<script lang="ts">
|
|
import { page } from '$app/stores';
|
|
import { BlahChatServerConnection } from '$lib/blah/connection/chatServer';
|
|
import { browser } from '$app/environment';
|
|
import { chatServerConnectionPool } from '$lib/chatServers';
|
|
import ServiceMessage from '$lib/components/ServiceMessage.svelte';
|
|
import ChatPage from './ChatPage.svelte';
|
|
import { useChat } from '$lib/chat';
|
|
|
|
$: roomId = $page.params.chatId;
|
|
|
|
let serverEndpoint: string = '';
|
|
$: {
|
|
const endpointString = decodeURIComponent($page.params.server);
|
|
serverEndpoint = endpointString.startsWith('http')
|
|
? endpointString
|
|
: `https://${endpointString}`;
|
|
}
|
|
|
|
let server: BlahChatServerConnection | null;
|
|
$: {
|
|
if (browser) {
|
|
server = chatServerConnectionPool.getConnection(serverEndpoint);
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<div class="flex h-full w-full flex-col items-center justify-center">
|
|
{#if server}
|
|
{@const { info, sectionedMessages, sendMessage } = useChat(server, roomId)}
|
|
<ChatPage {info} {sectionedMessages} on:sendMessage={(e) => sendMessage(e.detail)} />
|
|
{:else}
|
|
<ServiceMessage>
|
|
To view this chat, you need to connect to chat server
|
|
<span class="font-semibold">{serverEndpoint}</span>.
|
|
</ServiceMessage>
|
|
{/if}
|
|
</div>
|