X-Git-Url: https://git.r.bdr.sh/rbdr/forum/blobdiff_plain/8d2ed7debf232843c1facf53fd1efdab9b36d85c..24be7b5399ae4162702ad9a1f17b5711922a2da4:/app/forum.svelte

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 />
