diff options
| author | Ben Beltran <ben@nsovocal.com> | 2020-02-02 13:12:13 +0100 |
|---|---|---|
| committer | Ben Beltran <ben@nsovocal.com> | 2020-02-02 13:12:13 +0100 |
| commit | 24be7b5399ae4162702ad9a1f17b5711922a2da4 (patch) | |
| tree | 03b408813358445e2d1fdb9b680d56e9419dc80f /app/forum.svelte | |
| parent | 8d2ed7debf232843c1facf53fd1efdab9b36d85c (diff) | |
Add a router
Diffstat (limited to 'app/forum.svelte')
| -rw-r--r-- | app/forum.svelte | 38 |
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 /> |