add guild info in post, report and edit button
This commit is contained in:
parent
cd92a4b12e
commit
c33ab48225
4 changed files with 27 additions and 7 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
|
|
||||||
import { RiHistoryLine, RiHome2Line, RiUserLine } from "svelte-remixicon";
|
import { RiEditLine, RiFlagLine, RiHistoryLine, RiHome2Line, RiUserLine } from "svelte-remixicon";
|
||||||
import type { PostEntry } from "./backend";
|
import type { PostEntry } from "./backend";
|
||||||
import SLayout from "./SLayout.svelte";
|
import SLayout from "./SLayout.svelte";
|
||||||
import GuildAbout from "./GuildAbout.svelte";
|
import GuildAbout from "./GuildAbout.svelte";
|
||||||
|
|
@ -11,10 +11,13 @@
|
||||||
import GuildMenu from "./GuildMenu.svelte";
|
import GuildMenu from "./GuildMenu.svelte";
|
||||||
import { SvelteShowdown } from "svelte-showdown";
|
import { SvelteShowdown } from "svelte-showdown";
|
||||||
import VoteButton from "./VoteButton.svelte";
|
import VoteButton from "./VoteButton.svelte";
|
||||||
|
import { getMe } from "./globals.svelte";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let { post }: { post: PostEntry } = $props();
|
let { post }: { post: PostEntry } = $props();
|
||||||
|
|
||||||
|
let me = getMe();
|
||||||
let { title, created_at, id, content = '', to } = post;
|
let { title, created_at, id, content = '', to } = post;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -36,6 +39,12 @@ let { title, created_at, id, content = '', to } = post;
|
||||||
<VoteButton />
|
<VoteButton />
|
||||||
</div>
|
</div>
|
||||||
<ul class="message-options row">
|
<ul class="message-options row">
|
||||||
|
{#if me && me.id !== post.author?.id}
|
||||||
|
<li><a href="/report/post/{id}"><RiFlagLine/> Report</a></li>
|
||||||
|
{/if}
|
||||||
|
{#if me && me.id === post.author?.id }
|
||||||
|
<li><a href="/edit/post/{id}"><RiEditLine/> Edit</a></li>
|
||||||
|
{/if}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { RiHashtag, RiHistoryLine, RiUserLine } from "svelte-remixicon";
|
import { RiHistoryLine, RiShieldCrossLine, RiUserLine } from "svelte-remixicon";
|
||||||
import type { PostEntry } from "./backend";
|
import type { PostEntry } from "./backend";
|
||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
|
|
||||||
|
|
@ -10,7 +10,7 @@ let { post } : {post: PostEntry }= $props();
|
||||||
{#if post.author}<a href="/@{post.author.username}">@{post.author.username}</a>
|
{#if post.author}<a href="/@{post.author.username}">@{post.author.username}</a>
|
||||||
{:else}<i>Someone</i>{/if}</li>
|
{:else}<i>Someone</i>{/if}</li>
|
||||||
{#if post.to.type == 'guild'}
|
{#if post.to.type == 'guild'}
|
||||||
<li><RiHashtag /> <a href="/+{post.to.name}">+{post.to.name}</a></li>
|
<li><RiShieldCrossLine /> <a href="/+{post.to.name}">+{post.to.name}</a></li>
|
||||||
{/if}
|
{/if}
|
||||||
<li><RiHistoryLine /> <time datetime={post.created_at}>{ DateTime.fromISO(post.created_at).toFormat('d LLL yyyy') }</time></li>
|
<li><RiHistoryLine /> <time datetime={post.created_at}>{ DateTime.fromISO(post.created_at).toFormat('d LLL yyyy') }</time></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
|
|
||||||
|
|
||||||
import { backend } from '$lib/backend.js';
|
import { backend, type GuildEntry } from '$lib/backend.js';
|
||||||
import { error } from '@sveltejs/kit';
|
import { error } from '@sveltejs/kit';
|
||||||
|
|
||||||
export async function load(event) {
|
export async function load(event) {
|
||||||
const { params } = event;
|
const { params } = event;
|
||||||
const { id } = params;
|
const { id } = params;
|
||||||
|
|
||||||
|
|
||||||
const resp = await backend.withEvent(event).fetch('post/' + encodeURIComponent(id));
|
const resp = await backend.withEvent(event).fetch('post/' + encodeURIComponent(id));
|
||||||
|
|
||||||
|
|
@ -14,18 +13,30 @@ export async function load(event) {
|
||||||
error(404);
|
error(404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let post;
|
||||||
try{
|
try{
|
||||||
const respJ = await resp.json();
|
const respJ = await resp.json();
|
||||||
|
|
||||||
let { posts } = respJ;
|
let { posts } = respJ;
|
||||||
return posts[id];
|
post = posts[id];
|
||||||
|
|
||||||
//return {};
|
if (post?.to && post.to.type === 'guild') {
|
||||||
|
const guild: GuildEntry = post.to;
|
||||||
|
const guildResp = await backend.withEvent(event).fetch('guild/' + encodeURIComponent(guild.id));
|
||||||
|
const guildJson = await guildResp.json();
|
||||||
|
const guildInfo = guildJson?.guilds?.[guild.id];
|
||||||
|
guildInfo.type = 'guild';
|
||||||
|
post.to = guildInfo || guild;
|
||||||
|
console.log(post.to);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
error(502);
|
error(502);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return post;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
static/favicon.ico
Normal file
BIN
static/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 318 B |
Loading…
Add table
Add a link
Reference in a new issue