From a6ed8151a08f540a68fd5362884e4f9b888bca69 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 13 Oct 2026 05:31:05 +0000 Subject: Chat header: Add person is an icon. Adam's screenshot of the Bitcoin Community header: "Add person" wrapped onto two lines in a box twice the height of the bell and the door beside it. It is now a person with a plus, the same size and stroke as those (and lit while its panel is open), with "Add person" as its label and tooltip — in a community's header and a private group's. The form's own Add person button keeps its words. chat-layout-test finds the button by its label too; SHOT_PHONE=path saves the phone-width header. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01KPw21NEpWeTGu6swVASmBt --- src/features/messages.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/features') diff --git a/src/features/messages.js b/src/features/messages.js index b09aa17..f4e01b7 100644 --- a/src/features/messages.js +++ b/src/features/messages.js @@ -9707,6 +9707,8 @@ export function messagesFeature(ctx) { const I_BOOST = ICON(''); const I_QUOTE = ICON('', true); const I_HEART = (on) => ICON('', on); + // a person with a plus: add someone to a group or community + const I_ADD_PERSON = ''; const I_ZAP = ICON('', true); function noteActions(pk, ev, { canZap }) { @@ -13710,10 +13712,13 @@ export function messagesFeature(ctx) { ? '' : '', }), + // a person with a plus, like the bell and the door beside it: the + // words wrapped onto two lines in a narrow header h('button', { - class: 'btn-sm', title: t('msgInviteTitle'), + class: 'btn-sm' + (ui.msgInvitePanel ? ' on' : ''), title: t('msgInviteTitle'), 'aria-label': t('msgAddPerson'), onClick: () => { ui.msgInvitePanel = !ui.msgInvitePanel; render(); }, - }, t('msgAddPerson')), + html: I_ADD_PERSON, + }), // the door out — in the header where anyone looks for it, not in // the invite panel; one tap arms it, the second leaves jm.community_id === COMMUNITY.community_id ? null : h('button', { @@ -14062,8 +14067,10 @@ export function messagesFeature(ctx) { h('div', { class: 'muted small' }, g.removed ? t('msgGroupGone') : t('msgMembers', { n: accounts.length })))), h('div', { class: 'row gap6', style: 'align-items:center' }, admin ? h('button', { - class: 'btn-sm', onClick: () => { ui.msgMembers = !ui.msgMembers; dmSearcher.clear(false); render(); }, - }, t('msgAddPerson')) : null, + class: 'btn-sm' + (ui.msgMembers ? ' on' : ''), title: t('msgAddPerson'), 'aria-label': t('msgAddPerson'), + onClick: () => { ui.msgMembers = !ui.msgMembers; dmSearcher.clear(false); render(); }, + html: I_ADD_PERSON, + }) : null, // the door out: one tap arms it, the second leaves (same as a community) h('button', { class: 'btn-sm' + (ui.msgLeaveArm ? ' btn-danger' : ''), title: t('msgGroupLeave'), 'aria-label': t('msgGroupLeave'), disabled: ui.msgBusy, -- cgit v1.2.3