diff options
| author | Adam Soltys <[email protected]> | 2026-09-20 23:03:36 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-20 23:03:36 -0700 |
| commit | d5881643a18316efbd80b5acb9332726bcbc863f (patch) | |
| tree | 30be43750e836012341ab20d08a2f6ec361f6ce9 /src/features/messages.js | |
| parent | 9ef5c7633508cfecd19050bbcc637e091738de7e (diff) | |
| download | coinosv3-d5881643a18316efbd80b5acb9332726bcbc863f.tar.gz coinosv3-d5881643a18316efbd80b5acb9332726bcbc863f.zip | |
Messages: every saved feed is a row on the home list, under Following.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to 'src/features/messages.js')
| -rw-r--r-- | src/features/messages.js | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/features/messages.js b/src/features/messages.js index 73acf23..74d82d8 100644 --- a/src/features/messages.js +++ b/src/features/messages.js @@ -5717,6 +5717,15 @@ export function messagesFeature(ctx) { } // ---- the feed view -------------------------------------------------------- + // One line saying what a feed is made of: who, and on what. + function feedSummary(f) { + const people = f.follows + ? ((f.authors || []).length ? t('feedSumFollowsPlus', { n: f.authors.length }) : t('feedSumFollows')) + : (f.authors || []).length === 1 ? displayName(f.authors[0]) + : (f.authors || []).length ? t('feedSumPeople', { n: f.authors.length }) : ''; + const topics = feedTopics(f).map((x) => '#' + x).join(' '); + return [people, topics].filter(Boolean).join(' \u00b7 ') || t('feedNoQuery'); + } // The row of feeds under the title: Following, then yours, then + for // a new one. A topic opened for the session sits at the end until saved. function feedChips() { @@ -6240,7 +6249,7 @@ export function messagesFeature(ctx) { kids.push(h('div', { class: 'list' }, h('div', { class: 'item chat-thread-row', - onClick: () => { ui.msgView = 'feed'; feedNow(); watchFeed(); render(); }, + onClick: () => { ui.msgView = 'feed'; switchFeed(FOLLOWING); }, }, h('div', { class: 'chat-avatar fallback' }, '\u2605'), h('div', { class: 'col grow', style: 'min-width:0;gap:1px' }, @@ -6249,6 +6258,15 @@ export function messagesFeature(ctx) { followsNow().set.size === 1 ? t('feedFollowing1') : followsNow().set.size ? t('feedFollowingN', { n: followsNow().set.size }) : t('feedNoFollowsShort')))), + // ...the feeds you made, each its own row under it + ...st().feeds.map((f) => h('div', { + class: 'item chat-thread-row', + onClick: () => { ui.msgView = 'feed'; switchFeed(f.id); }, + }, + h('div', { class: 'chat-avatar fallback' }, feedTopics(f).length && !f.follows && !(f.authors || []).length ? '#' : '\u2605'), + h('div', { class: 'col grow', style: 'min-width:0;gap:1px' }, + h('span', { class: 'chat-name' }, f.name), + h('div', { class: 'muted small chat-preview' }, feedSummary(f))))), // ...and what happened to what you posted (() => { const n = myPubkeys().length ? notifUnread() : 0; |
