+ {/* ── Hero card ───────────────────────────────── */}
+
+
{
+ const url = window.prompt('Avatar image URL (leave blank to clear):', profile.avatar ?? '')
+ if (url !== null) setProfile({ avatar: url || null })
+ }}
+ >
+ {profile.avatar
+ ?

+ : initials}
+
+
+
+
+ {editingName ? (
+ setDraftName(e.target.value)}
+ onBlur={commitName}
+ onKeyDown={onNameKeyDown}
+ />
+ ) : (
+ <>
+ {profile.name}
+
+ >
+ )}
+
+
+
+ {myQuestions.length}
+ Questions
+
+
+ {myPosts.length}
+ Blog posts
+
+
+
+
+
+ {/* ── Tabs ─────────────────────────────────────── */}
+
+
+
+
+
+ {/* ── Questions tab ────────────────────────────── */}
+ {tab === 'questions' && (
+ <>
+ {qnaLoading &&
}
+ {qnaError &&
}
+ {!qnaLoading && !qnaError && myQuestions.length === 0 && (
+
}
+ message={`No questions yet from "${profile.name}". Open the help panel (?) on any page to ask contextually.`}
+ />
+ )}
+
+ {myQuestions.map(post => (
+
+ ))}
+
+ >
+ )}
+
+ {/* ── Blog posts tab ───────────────────────────── */}
+ {tab === 'posts' && (
+ <>
+ {blogLoading &&
}
+ {blogError &&
}
+ {!blogLoading && !blogError && myPosts.length === 0 && (
+
}
+ message={`No blog posts yet from "${profile.name}". Head to Blog to create one.`}
+ />
+ )}
+
+ {myPosts.map(post => (
+
+ ))}
+
+ >
+ )}
+
+