vigil/src/routes/create/+page.svelte

62 lines
1.3 KiB
Svelte
Raw Normal View History

2025-10-22 13:55:19 +02:00
<script lang="ts">
import Centered from "$lib/Centered.svelte";
2025-10-23 09:59:18 +02:00
import EditPost from "$lib/EditPost.svelte";
2025-10-22 13:55:19 +02:00
import { getMe } from "$lib/globals.svelte";
import GuildSelect from "$lib/GuildSelect.svelte";
2025-10-22 13:55:19 +02:00
import SLayout from "$lib/SLayout.svelte";
2025-11-01 09:51:41 +01:00
import Wip from "$lib/Wip.svelte";
import { RiErrorWarningLine } from "svelte-remixicon";
2025-10-22 13:55:19 +02:00
let me = getMe();
let content = $state("");
let privacy = $state(0);
2025-11-01 09:51:41 +01:00
let guildName = $state("");
2025-10-22 13:55:19 +02:00
2025-11-01 09:51:41 +01:00
let enablePost = $derived(!!content && !!guildName && false);
2025-10-22 13:55:19 +02:00
</script>
{#if me}
<SLayout title="New post">
<form method="POST" class="card">
<p>Posting as <strong>@{me.username}</strong></p>
2025-10-22 13:55:19 +02:00
<label>
2025-10-23 09:59:18 +02:00
Post to:
2025-11-01 09:51:41 +01:00
<GuildSelect bind:value={guildName} />
</label>
2025-10-22 13:55:19 +02:00
2025-10-23 09:59:18 +02:00
<EditPost bind:content bind:privacy />
{#if privacy === 0}
<span class="warning"><RiErrorWarningLine /> Your post will be PUBLIC!</span>
{/if}
2025-10-22 13:55:19 +02:00
2025-11-01 09:51:41 +01:00
<button class="card primary" disabled={!enablePost}>Create</button>
2025-10-22 13:55:19 +02:00
</form>
{#snippet left()}
2025-11-01 09:51:41 +01:00
<Wip />
{/snippet}
{#snippet right()}
2025-11-01 09:51:41 +01:00
<Wip />
{/snippet}
2025-10-22 13:55:19 +02:00
</SLayout>
{:else}
<Centered>
You must be <a href="login">logged in</a> in order to create posts.
2025-10-22 13:55:19 +02:00
</Centered>
{/if}
<style>
form {
display: flex;
flex-direction: column;
}
2025-10-23 09:59:18 +02:00
2025-10-22 13:55:19 +02:00
</style>