|
@@ -1,11 +1,14 @@
|
|
<script lang="ts">
|
|
<script lang="ts">
|
|
- import { getChannelMessages, sendMessage } from '$lib/apis/channels';
|
|
|
|
import { toast } from 'svelte-sonner';
|
|
import { toast } from 'svelte-sonner';
|
|
- import MessageInput from './MessageInput.svelte';
|
|
|
|
- import Messages from './Messages.svelte';
|
|
|
|
- import { socket } from '$lib/stores';
|
|
|
|
import { onDestroy, onMount, tick } from 'svelte';
|
|
import { onDestroy, onMount, tick } from 'svelte';
|
|
|
|
|
|
|
|
+ import { socket } from '$lib/stores';
|
|
|
|
+ import { getChannelById, getChannelMessages, sendMessage } from '$lib/apis/channels';
|
|
|
|
+
|
|
|
|
+ import Messages from './Messages.svelte';
|
|
|
|
+ import MessageInput from './MessageInput.svelte';
|
|
|
|
+ import { goto } from '$app/navigation';
|
|
|
|
+
|
|
export let id = '';
|
|
export let id = '';
|
|
|
|
|
|
let scrollEnd = true;
|
|
let scrollEnd = true;
|
|
@@ -14,6 +17,7 @@
|
|
let top = false;
|
|
let top = false;
|
|
let page = 1;
|
|
let page = 1;
|
|
|
|
|
|
|
|
+ let channel = null;
|
|
let messages = null;
|
|
let messages = null;
|
|
|
|
|
|
$: if (id) {
|
|
$: if (id) {
|
|
@@ -28,15 +32,24 @@
|
|
top = false;
|
|
top = false;
|
|
page = 1;
|
|
page = 1;
|
|
messages = null;
|
|
messages = null;
|
|
|
|
+ channel = null;
|
|
|
|
+
|
|
|
|
+ channel = await getChannelById(localStorage.token, id).catch((error) => {
|
|
|
|
+ return null;
|
|
|
|
+ });
|
|
|
|
|
|
- messages = await getChannelMessages(localStorage.token, id, page);
|
|
|
|
|
|
+ if (channel) {
|
|
|
|
+ messages = await getChannelMessages(localStorage.token, id, page);
|
|
|
|
|
|
- if (messages) {
|
|
|
|
- messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
|
|
|
|
|
|
+ if (messages) {
|
|
|
|
+ messagesContainerElement.scrollTop = messagesContainerElement.scrollHeight;
|
|
|
|
|
|
- if (messages.length < 50) {
|
|
|
|
- top = true;
|
|
|
|
|
|
+ if (messages.length < 50) {
|
|
|
|
+ top = true;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ goto('/');
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -93,6 +106,7 @@
|
|
>
|
|
>
|
|
{#key id}
|
|
{#key id}
|
|
<Messages
|
|
<Messages
|
|
|
|
+ {channel}
|
|
{messages}
|
|
{messages}
|
|
{top}
|
|
{top}
|
|
onLoad={async () => {
|
|
onLoad={async () => {
|