diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-10-12 14:02:16 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-10-12 14:02:16 -0400 |
| commit | 54a62a3ff06fc132b3ea8506efbce06c5e0869fe (patch) | |
| tree | cbf79697814d2aede080dd7a88c1a41b32825fe5 /ui/routes/(login)/invite | |
| parent | 756863f298f9e4277863f9e8758e253c5ae95923 (diff) | |
Initial invite accept UI
Diffstat (limited to 'ui/routes/(login)/invite')
| -rw-r--r-- | ui/routes/(login)/invite/[invite]/+page.js | 17 | ||||
| -rw-r--r-- | ui/routes/(login)/invite/[invite]/+page.svelte | 28 |
2 files changed, 45 insertions, 0 deletions
diff --git a/ui/routes/(login)/invite/[invite]/+page.js b/ui/routes/(login)/invite/[invite]/+page.js new file mode 100644 index 0000000..d90f542 --- /dev/null +++ b/ui/routes/(login)/invite/[invite]/+page.js @@ -0,0 +1,17 @@ +import { getInvite } from '$lib/apiServer'; + +export async function load({ params }) { + let { invite } = params; + let response = await getInvite(invite); + switch (response.status) { + case 200: + return response.data; + break; + case 404: + return null; + break; + default: + // TODO: display error. + break; + } +} diff --git a/ui/routes/(login)/invite/[invite]/+page.svelte b/ui/routes/(login)/invite/[invite]/+page.svelte new file mode 100644 index 0000000..eea05fc --- /dev/null +++ b/ui/routes/(login)/invite/[invite]/+page.svelte @@ -0,0 +1,28 @@ +<script> + import { goto } from '$app/navigation'; + import { page } from '$app/stores'; + import { acceptInvite } from '$lib/apiServer'; + + $: inviteId = $page?.params?.invite; + $: invite = $page.data; + + import LogIn from '$lib/components/LogIn.svelte'; + + let disabled; + let username; + let password; + + async function onSubmit() { + disabled = true; + const response = await acceptInvite(inviteId, username, password); + if (200 <= response.status && response.status < 300) { + username = ''; + password = ''; + goto('/'); + } + disabled = false; + } +</script> + +<p>Hi there! {invite.issuer.name} invites you to the conversation.</p> +<LogIn bind:disabled bind:username bind:password on:submit={onSubmit} /> |
