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

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