aboutsummaryrefslogtreecommitdiff
path: root/app/forum.svelte
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2020-02-02 13:12:13 +0100
committerBen Beltran <ben@nsovocal.com>2020-02-02 13:12:13 +0100
commit24be7b5399ae4162702ad9a1f17b5711922a2da4 (patch)
tree03b408813358445e2d1fdb9b680d56e9419dc80f /app/forum.svelte
parent8d2ed7debf232843c1facf53fd1efdab9b36d85c (diff)
Add a router
Diffstat (limited to 'app/forum.svelte')
-rw-r--r--app/forum.svelte38
1 files changed, 37 insertions, 1 deletions
diff --git a/app/forum.svelte b/app/forum.svelte
index d944d8e..038f176 100644
--- a/app/forum.svelte
+++ b/app/forum.svelte
@@ -1,10 +1,46 @@
<script>
+ import LightRouter from 'lightrouter';
+
import ForumList from './components/forum_list/forum_list.svelte';
import Header from './components/header/header.svelte';
+
+ // Routed Components
+ import Author from './components/author/author.svelte';
+ import Home from './components/home/home.svelte';
+ import InvalidRoute from './components/invalid_route/invalid_route.svelte';
+ import Post from './components/post/post.svelte';
import Topic from './components/topic/topic.svelte';
+ import TopicIndex from './components/topic_index/topic_index.svelte';
+
+ let page;
+ let params;
+
+ // sets the route params and current page.
+
+ const setRoute = function setRoute(targetPage) {
+
+ return function (routerParams) {
+ params = routerParams;
+ page = targetPage;
+ }
+ }
+
+ const router = new LightRouter({
+ routes: {
+ '': () => page = Home,
+ 'f/{id}': setRoute(TopicIndex),
+ 'g/{id}': setRoute(TopicIndex),
+ 'a/{id}': setRoute(Author),
+ 't/{id}': setRoute(Topic),
+ 'p/{id}': setRoute(Post),
+ '.*': setRoute(InvalidRoute)
+ }
+ });
+
+ router.run();
</script>
<Header />
-<Topic />
+<svelte:component this={ page } params={ params } />
<ForumList />