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 @@