]> git.r.bdr.sh - rbdr/forum/blob - src/routes/t/[id].svelte
50aad509ff909185f8a9099fab3150131aeb3070
[rbdr/forum] / src / routes / t / [id].svelte
1 <script context="module">
2 export const load = ({
3 page: {
4 params: { id }
5 }
6 }) => ({ props: { id } });
7 </script>
8
9 <script>
10 import { onDestroy } from 'svelte';
11 import { _ } from 'svelte-i18n';
12 import { getTopic } from '$/stores/topics';
13 import { disableTopicActions, enableTopicActions } from '$/stores/actions';
14
15 import Topic from '$/components/topic/topic.svelte';
16 import ErrorBlock from '$/components/error_block/error_block.svelte';
17 import Loader from '$/components/loader/loader.svelte';
18
19 export let id;
20
21 $: store = getTopic(id);
22 $: topic = $store.data;
23
24 enableTopicActions(id);
25 onDestroy(() => disableTopicActions());
26 </script>
27
28 <svelte:head>
29 {#if $store.loading}
30 <title>{$_('loader.message')}, {$_('topic.title')}</title>
31 {/if}
32 {#if $store.error}
33 <title>{$_('error.generic.title')}, {$_('topic.title')}</title>
34 {/if}
35 {#if topic}
36 <title>{topic.title}, {$_('topic.title')}</title>
37 {/if}
38 </svelte:head>
39
40 {#if $store.loading}
41 <Loader />
42 {/if}
43 {#if $store.error}
44 <ErrorBlock message={$_('topic.error.unavailable')} />
45 {/if}
46 {#if topic}
47 <Topic {topic} />
48 {/if}