From ec6043df303ff116b5616c9053384ebf53dc2940 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 14 Mar 2023 17:06:35 +0100 Subject: [PATCH] feat: member edit page --- backend/db/member.go | 4 +- frontend/src/routes/@[username]/+page.svelte | 3 + .../@[username]/[memberName]/+page.svelte | 9 +- .../src/routes/edit/member/[id]/+page.svelte | 412 ++++++++++++++++++ frontend/src/routes/edit/member/[id]/+page.ts | 17 + frontend/src/routes/settings/+page.svelte | 5 +- 6 files changed, 446 insertions(+), 4 deletions(-) create mode 100644 frontend/src/routes/edit/member/[id]/+page.svelte create mode 100644 frontend/src/routes/edit/member/[id]/+page.ts diff --git a/backend/db/member.go b/backend/db/member.go index 0fe3d3c..f8c241a 100644 --- a/backend/db/member.go +++ b/backend/db/member.go @@ -160,9 +160,9 @@ func (db *DB) UpdateMember( builder := sq.Update("members").Where("id = ?", id).Suffix("RETURNING *") if name != nil { if *name == "" { - builder = builder.Set("name", nil) + return m, errors.Wrap(err, "name was empty") } else { - builder = builder.Set("name", *displayName) + builder = builder.Set("name", *name) } } if displayName != nil { diff --git a/frontend/src/routes/@[username]/+page.svelte b/frontend/src/routes/@[username]/+page.svelte index 7b5e145..56ba59e 100644 --- a/frontend/src/routes/@[username]/+page.svelte +++ b/frontend/src/routes/@[username]/+page.svelte @@ -32,6 +32,7 @@ import { PUBLIC_BASE_URL } from "$env/static/public"; import { apiFetchClient } from "$lib/api/fetch"; import ErrorAlert from "$lib/components/ErrorAlert.svelte"; + import { goto } from "$app/navigation"; export let data: PageData; @@ -73,6 +74,8 @@ data.members = [...data.members, member]; toggleModal(); + + goto(`/@${data.name}/${member.name}`); } catch (e) { newMemberError = e as APIError; } diff --git a/frontend/src/routes/@[username]/[memberName]/+page.svelte b/frontend/src/routes/@[username]/[memberName]/+page.svelte index 56bdaac..8fe056b 100644 --- a/frontend/src/routes/@[username]/[memberName]/+page.svelte +++ b/frontend/src/routes/@[username]/[memberName]/+page.svelte @@ -8,9 +8,10 @@ import StatusIcon from "$lib/components/StatusIcon.svelte"; import PronounLink from "$lib/components/PronounLink.svelte"; import FallbackImage from "$lib/components/FallbackImage.svelte"; - import { Button, Icon } from "sveltestrap"; + import { Alert, Button, Icon } from "sveltestrap"; import { memberAvatars, pronounDisplay, WordStatus } from "$lib/api/entities"; import { PUBLIC_BASE_URL } from "$env/static/public"; + import { userStore } from "$lib/store"; export let data: PageData; @@ -22,6 +23,12 @@
+ {#if $userStore && $userStore.id === data.user.id} + + You are currently viewing the public profile of {data.name}. +
Edit profile +
+ {/if}
+ {/if} + + + + + + +

If you want to delete this member, type their name below:

+

+ +

+ {#if deleteError} + + {/if} +
+ + + + +
+ +{#if error} + +{/if} + +{#if !$userStore} + Error: No user object +{:else} +
+
+
+

Avatar

+
+
+ {#if avatar} + New avatar + {:else} + + {/if} +
+
+ +
+
+
+
+
+ + + +
+
+ + + +
+
+ +