diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2021-03-09 22:43:12 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2021-03-09 22:43:12 +0100 |
| commit | bd8e98d7e24c4dbaee7db6ec7955f7c2f6d396a6 (patch) | |
| tree | e5f0dcbc14d3009c17e5f562404fe19f6aceab73 /src/forum.svelte | |
| parent | 862a5f9cdbbda522c608ea63c1e296e81f44de10 (diff) | |
Update to SvelteKit
Diffstat (limited to 'src/forum.svelte')
| -rw-r--r-- | src/forum.svelte | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/forum.svelte b/src/forum.svelte new file mode 100644 index 0000000..d2a6e1b --- /dev/null +++ b/src/forum.svelte @@ -0,0 +1,63 @@ +<script> + import LightRouter from 'lightrouter'; + + // Initialize localization + + import './config/i18n'; + + // Global components + + import ForumList from './components/forum_list/forum_list.svelte'; + import Header from './components/header/header.svelte'; + import Footer from './components/footer/footer.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) && true, + '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 /> +<main> + <svelte:component this={ page } params={ params } /> +</main> +<ForumList /> +<Footer /> + +<style> + main { + grid-column: col-start 2 / span 11; + } +</style> |