X-Git-Url: https://git.r.bdr.sh/rbdr/forum/blobdiff_plain/bd8e98d7e24c4dbaee7db6ec7955f7c2f6d396a6..4e6be9f49b9697d9577014b3ee2b7988129823a9:/src/routes/t/%5Bid%5D.svelte?ds=sidebyside

diff --git a/src/routes/t/[id].svelte b/src/routes/t/[id].svelte
index 8775cec..9d3ab9e 100644
--- a/src/routes/t/[id].svelte
+++ b/src/routes/t/[id].svelte
@@ -1,10 +1,48 @@
+<script context="module">
+	export const load = ({
+	  page: {
+	    params: { id }
+	  }
+	}) => ({ props: { id } });
+</script>
+
 <script>
-  export async function load(ctx) {
-    let id = ctx.page.params.id
-    return { props: { id }}
-  }
+	import { onDestroy } from 'svelte';
+	import { _ } from 'svelte-i18n';
+	import { getTopic } from '$/stores/topic';
+	import { disableTopicActions, enableTopicActions } from '$/stores/actions';
+
+	import Topic from '$/components/topic/topic.svelte';
+	import ErrorBlock from '$/components/error_block/error_block.svelte';
+	import Loader from '$/components/loader/loader.svelte';
 
-  import Topic from '$components/topic/topic.svelte';
+	export let id;
+
+	$: store = getTopic(id);
+	$: topic = $store.data;
+
+	enableTopicActions(id);
+	onDestroy(() => disableTopicActions());
 </script>
 
-<Topic/>
+<svelte:head>
+	{#if $store.loading}
+		<title>{$_('loader.message')}, {$_('topic.title')}</title>
+	{/if}
+	{#if $store.error}
+		<title>{$_('error.generic.title')}, {$_('topic.title')}</title>
+	{/if}
+	{#if topic}
+		<title>{topic.title}, {$_('topic.title')}</title>
+	{/if}
+</svelte:head>
+
+{#if $store.loading}
+	<Loader />
+{/if}
+{#if $store.error}
+	<ErrorBlock message={$_('topic.error.unavailable')} />
+{/if}
+{#if topic}
+	<Topic {topic} />
+{/if}
