From 4183b905b1f142aff471b0d7dc831637823dee58 Mon Sep 17 00:00:00 2001
From: Florian <45694132+flo-bit@users.noreply.github.com>
Date: Mon, 26 May 2025 12:20:13 +0200
Subject: [PATCH] add user profile editing
---
src/lib/components/Avatar.svelte | 75 +++++++++++
src/lib/components/ChatMessage.svelte | 5 +-
src/lib/components/EditProfileModal.svelte | 138 +++++++++++++++++++++
src/lib/components/Image.svelte | 10 +-
src/lib/components/ReplyMessage.svelte | 5 +-
src/routes/+layout.ts | 2 +-
src/routes/+page.svelte | 30 +----
7 files changed, 233 insertions(+), 32 deletions(-)
create mode 100644 src/lib/components/Avatar.svelte
create mode 100644 src/lib/components/EditProfileModal.svelte
diff --git a/src/lib/components/Avatar.svelte b/src/lib/components/Avatar.svelte
new file mode 100644
index 0000000..ad03029
--- /dev/null
+++ b/src/lib/components/Avatar.svelte
@@ -0,0 +1,75 @@
+
+
+
+ {#if fallback}
+
{fallback}
+ {:else}
+
+ {/if}
+ {#if (src || image) && browser}
+
+ {/if}
+
diff --git a/src/lib/components/ChatMessage.svelte b/src/lib/components/ChatMessage.svelte
index 42d15c7..7bb4410 100644
--- a/src/lib/components/ChatMessage.svelte
+++ b/src/lib/components/ChatMessage.svelte
@@ -1,7 +1,7 @@
+
+
+
+
Edit your profile
+
+
+
+
click avatar to change
+
+
+
Username
+
{
+ if (me.current) me.current.profile.name = username;
+ }}
+ onblur={() => {
+ if (me.current) me.current.profile.name = username;
+ }}
+ />
+
+
Or set from bluesky handle:
+
+
+
+
diff --git a/src/lib/components/Image.svelte b/src/lib/components/Image.svelte
index 981a0bb..f08a7e5 100644
--- a/src/lib/components/Image.svelte
+++ b/src/lib/components/Image.svelte
@@ -5,9 +5,10 @@
let {
image,
+ src,
class: className,
...rest
- }: { image?: Loaded; class?: string } = $props();
+ }: { image?: Loaded; src?: string; class?: string } = $props();
onMount(() => {});
@@ -15,8 +16,13 @@
$effect(() => {
if (loaded) return;
- if (!image) return;
if (!imageRef) return;
+ if (src && !image) {
+ imageRef.src = src;
+ loaded = true;
+ return;
+ }
+ if (!image) return;
loaded = true;
const highestRes = ImageDefinition.highestResAvailable(image);
diff --git a/src/lib/components/ReplyMessage.svelte b/src/lib/components/ReplyMessage.svelte
index d488b8c..7e51f09 100644
--- a/src/lib/components/ReplyMessage.svelte
+++ b/src/lib/components/ReplyMessage.svelte
@@ -1,9 +1,10 @@