diff --git a/package.json b/package.json
index bc8646f1..88da89c2 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "mage-website",
- "version": "0.2.16",
+ "version": "0.2.17",
"license": "GPL-3.0",
"private": true,
"type": "module",
diff --git a/src/lib/components/Channel/Stream/VideoItem.svelte b/src/lib/components/Channel/Stream/VideoItem.svelte
index d61cbc78..d015386f 100644
--- a/src/lib/components/Channel/Stream/VideoItem.svelte
+++ b/src/lib/components/Channel/Stream/VideoItem.svelte
@@ -477,7 +477,9 @@
{/if}
{#if showBanItem || showRoleItem}
-
+
{#if showRoleItem && !channel.bans.includes(video._id)}
-
toggleMod()}
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index e0185e93..919211d6 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -84,7 +84,8 @@
`}
-
+
+
@@ -95,6 +96,7 @@
+
{
}
return {
seo: {
- title: profile.username?.toLowerCase(),
+ title: profile.displayName?.toLowerCase(),
description: profile.bio,
image: profile.avatar,
imageAlt: `${profile.username?.toLowerCase()} avatar`,
- url: url.href
+ url: url.href,
+ username: profile.username?.toLowerCase()
},
profile: profile,
lazy: {
diff --git a/src/routes/channel/[channelId]/+page.server.ts b/src/routes/channel/[channelId]/+page.server.ts
index 6ff36069..ee2b29ff 100644
--- a/src/routes/channel/[channelId]/+page.server.ts
+++ b/src/routes/channel/[channelId]/+page.server.ts
@@ -1,8 +1,26 @@
-import { putImage } from '$lib/api'
+import { get, putImage } from '$lib/api'
import { dataURLtoFile } from '$lib/utils'
-import type { Actions } from './$types'
+import { error } from '@sveltejs/kit'
+import type { Actions, PageServerLoad } from './$types'
-//TODO: get channel in server side and set SEO data
+export const load = (async ({ params, url }) => {
+ if (!params.channelId) error(404)
+ const channel = await get(`channel?channelId=${params.channelId}`)
+ if (!channel || channel?.error) {
+ error(404)
+ }
+ return {
+ seo: {
+ title: channel.title,
+ description: channel.description,
+ image: channel.thumbnail || 'https://mage.stream/placeholder/programming-placeholder.jpg',
+ imageAlt: `channel thumbnail`,
+ url: url.href,
+ username: channel.username
+ },
+ channel
+ }
+}) satisfies PageServerLoad
export const actions = {
'edit-channel': async ({ request, locals }) => {
diff --git a/src/routes/channel/[channelId]/+page.svelte b/src/routes/channel/[channelId]/+page.svelte
index c8dd305b..fb7502b5 100644
--- a/src/routes/channel/[channelId]/+page.svelte
+++ b/src/routes/channel/[channelId]/+page.svelte
@@ -22,7 +22,9 @@
import DrawerRestream from '$lib/components/Channel/Chat/DrawerRestream.svelte'
import DialogSponsor from '$lib/components/Channel/Chat/DialogSponsor.svelte'
import { is_feature_premium_enabled } from '$lib/stores/remoteConfigStore'
+ import type { PageData } from './$types'
+ export let data: PageData
let channel: any,
isDeleteModalOpen = false,
showEditChannelDrawer = false,
@@ -163,7 +165,7 @@
}
const loadChannel = async () => {
- const chan = await get(`channel?channelId=${$page.params.channelId}`)
+ const chan = data.channel
chan.videoItems = []
const isOnboarded = await get(`plan/onboarded?userId=${chan.userId}`)
chan.isOnboarded = isOnboarded || false