diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/app.js | 9 | ||||
| -rw-r--r-- | src/features/messages.js | 3 |
2 files changed, 11 insertions, 1 deletions
@@ -2696,7 +2696,14 @@ function onboardScreen() { if (o.enterAddr === undefined) o.enterAddr = addr || null; // Only a real (custom) name advances by itself — the background // auto-claim of the npub-shaped default doesn't count as setting up. - if (addr && addr !== o.enterAddr && !/^npub1/.test(addr)) o.step = 'avatar'; + if (addr && addr !== o.enterAddr && !/^npub1/.test(addr)) { + // The avatar ask is for brand-new profiles. An identity that already + // wears a face (a nostr login with a published picture) skips straight + // to done — the punk picker restyling a real profile helps nobody. + const me = (featureHook('nostrLoginIdentity') || {}).pubkey || (wallet.nostrPubkey && wallet.nostrPubkey()); + const prof = me ? featureHook('cachedProfile', me) : null; + o.step = prof && prof.picture ? 'success' : 'avatar'; + } } try { localStorage.setItem(ONB_STEP_KEY, o.step); } catch {} const page = (kids) => h('div', { class: 'col onb', style: 'gap:20px' }, ...kids); diff --git a/src/features/messages.js b/src/features/messages.js index a89854a..4202a75 100644 --- a/src/features/messages.js +++ b/src/features/messages.js @@ -2314,6 +2314,9 @@ export function messagesFeature(ctx) { // Anyone (ark's history, other features) can open a profile or render a // small clickable identity chip. showProfile(pk) { openProfile(pk); return true; }, + // The light profile cache, read-only — lets the onboarding wizard skip + // asks (like the avatar picker) that a loaded identity already answered. + cachedProfile(pk) { return profileOf(pk); }, // Publish (merge) kind-0 fields for the current identity — the onboarding // wizard sets name + picture through this. publishProfile(fields, opts = {}) { return publishProfileFields(fields, opts); }, |
