9 changed files with 112 additions and 9 deletions
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
<script> |
||||
import { onMount } from 'svelte'; |
||||
import { useTinyRouter } from 'svelte-tiny-router'; |
||||
import { api } from '../../urls.svelte'; |
||||
import { t } from '../../translations.svelte'; |
||||
|
||||
let { key } = $props(); |
||||
|
||||
|
||||
let error = $state(null); |
||||
let page = $state(null); |
||||
let router = useTinyRouter(); |
||||
|
||||
async function loadContent(res){ |
||||
if (res.ok){ |
||||
page = null; |
||||
page = await res.json(); |
||||
error = null; |
||||
return true; |
||||
} else { |
||||
error = await res.text(); |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
async function loadPage(){ |
||||
const url = api(`wiki/page/${key}`); |
||||
const res = await fetch(url,{credentials:'include'}); |
||||
loadContent(res); |
||||
} |
||||
|
||||
function onclick(e){ |
||||
e.preventDefault(); |
||||
let href = e.target.getAttribute('href'); |
||||
if (href) router.navigate(href); |
||||
return false; |
||||
} |
||||
|
||||
$effect(loadPage); |
||||
</script> |
||||
{#if error} |
||||
<span class="error">{error}</span> |
||||
{/if} |
||||
{#if page} |
||||
<div class="wiki page"> |
||||
<h2>{page.title}</h2> |
||||
<div class="markdown"> |
||||
{@html page.content.rendered} |
||||
</div> |
||||
</div> |
||||
{/if} |
||||
Loading…
Reference in new issue