- Timestamp:
- 08/25/2026 07:25:31 PM (2 weeks ago)
- Branches:
- main
- Children:
- 824d1d0
- Parents:
- 3e7dde2
- Location:
- src/views
- Files:
-
- 2 edited
-
pages/messages.ejs (modified) (1 diff)
-
partials/msg-item.ejs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/views/pages/messages.ejs
r3e7dde2 r2c0c338 134 134 .msg-thread.is-collapsed .msg-thread-head { margin-bottom: 0; } 135 135 @media (prefers-reduced-motion: reduce) { .msg-thread-chevron { transition: none; } } 136 /* De zwaai in de kop: klein, en met dezelfde rust als het aantal ernaast. 137 Hij staat er ook als het gesprek open is -- dan zegt de bubbel het al, maar 138 een kop die van stand verandert leest als iets dat gebeurde. */ 139 .msg-thread-wave { flex: 0 0 auto; font-size: .95em; line-height: 1; } 136 140 .msg-thread-count { font-variant-numeric: tabular-nums; opacity: .75; flex: 0 0 auto; 137 141 padding-inline-start: .3rem; border-inline-start: 1px solid color-mix(in srgb, var(--ink, #000) 14%, transparent); } -
src/views/partials/msg-item.ejs
r3e7dde2 r2c0c338 11 11 var _tto = ((n.messages || []).find(function (m) { return m.to_handle; }) || {}).to_handle; 12 12 var _tlabel = _tpeople.length ? _tpeople.join(', ') : (_tto || t('msg.you')); 13 // Zwaaide er iemand in dit gesprek? Dan hoort dat in de KOP 14 // (Robins aanwijzing, 25-8). Ingeklapt zijn de bubbels weg, en juist 15 // een zwaai is het bericht dat om een antwoord vraagt zonder iets te 16 // zeggen -- die mag niet achter een dichtgeklapt gesprek verdwijnen. 17 // Alleen een ONTVANGEN zwaai: je eigen zwaai staat er als 'sent' en 18 // is geen uitnodiging aan jezelf. 19 var _twave = (n.messages || []).some(function (m) { return m.type === 'mention' && m.wave; }); 13 20 %> 14 21 <li class="msg-item msg-thread<%= _tnew ? ' is-new' : '' %>" data-kind="conv" data-who="<%= (_tpeople.join(' ') + ' ' + (_tto || '')).toLowerCase() %>"> … … 30 37 <svg class="msg-thread-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="6 9 12 15 18 9"/></svg> 31 38 </button> 39 <%# Blijft staan als het gesprek dicht is, net als het aantal in de 40 uitsparing hierboven -- daar is hij juist het meest waard. %> 41 <% if (_twave) { %><span class="msg-thread-wave" role="img" aria-label="<%= t('msg.waved_at_you') %>" title="<%= t('msg.waved_at_you') %>">👋</span><% } %> 32 42 <% if (_tnew) { %><span class="msg-new" title="<%= t('msg.new') %>"></span><% } %> 33 43 <%# De context bij de draad: waar gaat dit gesprek over? Zonder deze … … 40 50 <% } %> 41 51 </div> 52 <%# NIEUWSTE BOVENAAN binnen een gesprek (Robins besluit, 25-8). De 53 LIJST van gesprekken en de meldingen blijven staan zoals ze 54 stonden; alleen binnen een draad leest het van nieuw naar oud, dus 55 wat er net bij kwam staat er meteen en niet onderaan een lange 56 draad. 57 58 Op een KOPIE, want groupConversations sorteert `messages` 59 oplopend en de rest van deze pagina rekent daarop -- `_tnew` en 60 `_tto` hierboven lezen dezelfde array. Een reverse() zonder 61 slice() draait het origineel om en dat werkt door naar alles wat 62 er daarna nog naar kijkt. 63 64 In de MARKUP en niet met column-reverse: die draait alleen het 65 beeld om, terwijl een schermlezer en het toetsenbord de oude 66 volgorde houden. %> 42 67 <ul class="msg-thread-msgs"> 43 <% (n.messages || []). forEach(function (m) { %><%- include('msg-item', { n: m, seen: _tseen, inThread: true }) %><% }); %>68 <% (n.messages || []).slice().reverse().forEach(function (m) { %><%- include('msg-item', { n: m, seen: _tseen, inThread: true }) %><% }); %> 44 69 </ul> 45 70 <%# Antwoorden vanuit de draad zelf. Ingeklapt, want een open editor
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)