add moderator list, create guild link
This commit is contained in:
parent
50c0c7d865
commit
047fc545ae
6 changed files with 57 additions and 7 deletions
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "@yusurko/vigil",
|
||||
"private": true,
|
||||
"version": "0.1.0-dev62",
|
||||
"version": "0.1.0-dev74",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ let { narrow = false, small = false, children } : { narrow?: boolean, small ?: b
|
|||
</script>
|
||||
|
||||
<div class="centered" class:narrow={narrow} class:small={small}>
|
||||
{@render children () }
|
||||
{@render children() }
|
||||
</div>
|
||||
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<script lang="ts">
|
||||
import { RiCompassLine, RiHome2Line, RiSettings2Line, RiShieldStarLine, RiUserLine } from 'svelte-remixicon';
|
||||
import { RiCompassLine, RiHome2Line, RiSettings2Line, RiShieldStarLine, RiAddBoxLine, RiUserLine } from 'svelte-remixicon';
|
||||
import MenuLink from './MenuLink.svelte';
|
||||
|
||||
let { user = null } = $props();
|
||||
|
|
@ -11,6 +11,9 @@
|
|||
<MenuLink href="/settings" icon={RiSettings2Line} label="Settings" />
|
||||
{#if user}
|
||||
<MenuLink href="/@{user.username}" icon={RiUserLine} label="My profile" />
|
||||
{#if true}
|
||||
<MenuLink href="/createguild" icon={RiAddBoxLine} label="Create guild" />
|
||||
{/if}
|
||||
{#if user.badges && user.badges.indexOf('administrator') >= 0}
|
||||
<MenuLink href="/admin/" icon={RiShieldStarLine} label="Administration" />
|
||||
{/if}
|
||||
|
|
|
|||
33
src/lib/ModeratorList.svelte
Normal file
33
src/lib/ModeratorList.svelte
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<script lang="ts">
|
||||
import { RiShieldStarLine } from "svelte-remixicon";
|
||||
import AsideCard from "./AsideCard.svelte";
|
||||
import Centered from "./Centered.svelte";
|
||||
import { getMe } from "./globals.svelte";
|
||||
import Wip from "./Wip.svelte";
|
||||
|
||||
let { guildName, mods } = $props();
|
||||
let me = getMe();
|
||||
</script>
|
||||
|
||||
{#if me && mods}
|
||||
|
||||
{#if mods.banned}
|
||||
<Centered>Moderator list is hidden because you are banned.</Centered>
|
||||
{:else if mods.unmoderated}
|
||||
<Centered>+{guildName} is currently unmoderated</Centered>
|
||||
{:else}
|
||||
<AsideCard title={`Moderators of +${guildName}`}>
|
||||
<ul>
|
||||
{#each mods.has as mod}
|
||||
<li>
|
||||
@{mod.username}
|
||||
{#if mod.is_owner}
|
||||
<span><RiShieldStarLine/> <small>Owner</small></span>
|
||||
{/if}
|
||||
</li>
|
||||
{/each}
|
||||
</ul>
|
||||
</AsideCard>
|
||||
{/if}
|
||||
|
||||
{/if}
|
||||
|
|
@ -1,12 +1,15 @@
|
|||
<script lang="ts">
|
||||
import type { GuildEntry, PostEntry } from "$lib/backend";
|
||||
import Feed from "$lib/Feed.svelte";
|
||||
import { getMe } from "$lib/globals.svelte";
|
||||
import GuildAbout from "$lib/GuildAbout.svelte";
|
||||
import GuildMenu from "$lib/GuildMenu.svelte";
|
||||
import ModeratorList from "$lib/ModeratorList.svelte";
|
||||
import SLayout from "$lib/SLayout.svelte";
|
||||
|
||||
let { data } : { data: { guild: GuildEntry , feed: PostEntry[] } } = $props();
|
||||
let { guild, feed = [] } = $derived(data);
|
||||
let { data } : { data: { guild: GuildEntry , feed: PostEntry[], mods: any } } = $props();
|
||||
let { guild, feed = [], mods = null } = $derived(data);
|
||||
let me = getMe();
|
||||
|
||||
</script>
|
||||
|
||||
|
|
@ -19,5 +22,9 @@
|
|||
|
||||
{#snippet right()}
|
||||
<GuildAbout {guild} />
|
||||
|
||||
{#if me}
|
||||
<ModeratorList guildName={guild.name} {mods} />
|
||||
{/if}
|
||||
{/snippet}
|
||||
</SLayout>
|
||||
|
|
@ -21,11 +21,18 @@ export async function load(event) {
|
|||
if (guilds[g].name === name) {
|
||||
guild = guilds[g];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!guild) error(404);
|
||||
|
||||
return { guild, feed };
|
||||
let mods = null;
|
||||
const respMods = await backend.withEvent(event).fetch('guild/@' + encodeURIComponent(name) + '/mods');
|
||||
|
||||
if (respMods.status === 200) {
|
||||
const respModsJ = await respMods.json();
|
||||
mods = respModsJ;
|
||||
}
|
||||
return { guild, feed, mods };
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue