Browse Source

Use static routes for article viewer

master
buttercat1791 1 year ago committed by limina1
parent
commit
750cc5ab66
  1. 4
      src/lib/components/ArticleHeader.svelte
  2. 26
      src/routes/article/+page.svelte
  3. 20
      src/routes/d/[tag]/+page.svelte
  4. 11
      src/routes/d/[tag]/+page.ts
  5. 42
      src/routes/publication/+page.svelte

4
src/lib/components/ArticleHeader.svelte

@ -20,9 +20,9 @@ @@ -20,9 +20,9 @@
const d = event.getMatchingTags('d')[0][1];
if (d != null) {
href = `d/${d}`;
href = `publication?d=${d}`;
} else {
href = neventEncode(event, relays);
href = `publication?id=${neventEncode(event, relays)}`;
}
} catch (e) {
console.warn(e);

26
src/routes/article/+page.svelte

@ -1,26 +0,0 @@ @@ -1,26 +0,0 @@
<script lang="ts">
import { page } from '$app/stores';
import Article from '$lib/components/Article.svelte';
import { ndk } from '$lib/ndk';
import type { NDKEvent } from '@nostr-dev-kit/ndk';
const id = $page.url.searchParams.get('id');
let event: NDKEvent | null | undefined;
if (!id) {
// TODO: Redirect to 400 page.
}
$ndk.fetchEvent(id!)
.then(ev => {
event = ev;
})
.catch(err => {
console.error(err);
// TODO: Redirect to 404 page.
});
</script>
<main>
<Article index={event} />
</main>

20
src/routes/d/[tag]/+page.svelte

@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
<script lang="ts">
import Article from '$lib/components/Article.svelte';
import { ndk } from '$lib/ndk';
import { TextPlaceholder } from 'flowbite-svelte';
import type { PageData } from './$types';
export let data: PageData;
const getIndexEvent = (d: string) => {
return $ndk.fetchEvent({ '#d': [d] });
};
</script>
<main>
{#await getIndexEvent(data.event.d)}
<TextPlaceholder size='xxl' />
{:then index}
<Article {index} />
{/await}
</main>

11
src/routes/d/[tag]/+page.ts

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
import type { PageLoad } from './$types';
export const load: PageLoad = async ({ params }) => {
const { tag } = params;
return {
event: {
d: tag,
}
};
};

42
src/routes/publication/+page.svelte

@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
<script lang="ts">
import { page } from '$app/stores';
import Article from '$lib/components/Article.svelte';
import { ndk } from '$lib/ndk';
import type { NDKEvent } from '@nostr-dev-kit/ndk';
import { TextPlaceholder } from 'flowbite-svelte';
const id = $page.url.searchParams.get('id');
const dTag = $page.url.searchParams.get('d');
let event: NDKEvent | null | undefined;
if (id) {
$ndk.fetchEvent(id)
.then(ev => {
event = ev;
})
.catch(err => {
console.error(err);
// TODO: Redirect to 404 page.
});
} else if (dTag) {
$ndk.fetchEvent({ '#d': [dTag] })
.then(ev => {
event = ev;
})
.catch(err => {
console.error(err);
// TODO: Redirect to 404 page.
});
} else {
// TODO: Redirect to 400 page.
}
</script>
<main>
{#await event}
<TextPlaceholder size='xxl' />
{:then ev}
<Article index={ev} />
{/await}
</main>
Loading…
Cancel
Save