aboutsummaryrefslogtreecommitdiffstats
path: root/src/app.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-27 22:52:56 -0700
committerAdam Soltys <[email protected]>2026-09-27 22:52:56 -0700
commite10e201f93a437ee7e8c6db6e0024153fd312b7c (patch)
treefa367bba63f8c306e5655286f101fb2b7fb0c396 /src/app.js
parent3b3ccf7bcab9bf5344714fb8722667a49a06e53f (diff)
downloadcoinosv3-e10e201f93a437ee7e8c6db6e0024153fd312b7c.tar.gz
coinosv3-e10e201f93a437ee7e8c6db6e0024153fd312b7c.zip
A visitor who taps zap, reply, react or boost is shown the way in; the public header has Search and Sign in.
Reading is free. A tap on an action without a wallet opens a sheet with the sign-in doors (Google, passkey, Nostr), Create a new wallet, and Not now; the missing-identity path lands there too instead of a toast, and zapping is never offered to a visitor as if it could go through. The header on a public page (a feed, a profile, a thread) carries Search and Sign in. The page is remembered, so a sign-in lands back on it. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D
Diffstat (limited to 'src/app.js')
-rw-r--r--src/app.js12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/app.js b/src/app.js
index d31c75c..ee19009 100644
--- a/src/app.js
+++ b/src/app.js
@@ -2534,9 +2534,19 @@ function brandHeader(withLock) {
messagesBtn(),
settingsBtn(),
avatarMenu())
- : null
+ : ui.pubProf && !acc ? visitorButtons() : null
);
}
+// A visitor on a public page (a feed, a profile, a thread): find anyone,
+// and the way in.
+function visitorButtons() {
+ return h('div', { class: 'row gap6', style: 'align-items:center' },
+ h('button', {
+ class: 'header-msgs', title: t('searchUsers'), 'aria-label': t('searchUsers'),
+ onClick: () => { featureHook('visitorSearch'); setTimeout(() => document.querySelector('.user-search-input')?.focus(), 60); },
+ }, h('span', { class: 'hm-ico', html: '<svg width="21" height="21" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.35-4.35"/></svg>' })),
+ h('button', { class: 'btn-primary btn-sm', style: 'flex-shrink:0', onClick: () => featureHook('visitorSignIn') }, t('nlSignIn')));
+}
// Settings tab — view the recovery phrase (+ passphrase) again (important for
// users who skipped backup verification) and the offline snapshot transfer.