- Timestamp:
- 08/25/2026 07:33:36 PM (2 weeks ago)
- Branches:
- main
- Children:
- cb1bd82
- Parents:
- 2c0c338
- Location:
- src/views
- Files:
-
- 2 edited
-
pages/messages.ejs (modified) (2 diffs)
-
partials/msg-item.ejs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/views/pages/messages.ejs
r2c0c338 r824d1d0 127 127 waard. */ 128 128 .msg-thread.is-collapsed .msg-thread-msgs, 129 .msg-thread.is-collapsed .msg-thread- foot{ display: none; }129 .msg-thread.is-collapsed .msg-thread-actions { display: none; } 130 130 /* Tijdens het zoeken wint de treffer van de dichtgeklapte stand. */ 131 131 .msg-thread.is-collapsed.is-search-open .msg-thread-msgs { display: flex; } 132 .msg-thread.is-collapsed.is-search-open .msg-thread- foot{ display: flex; }132 .msg-thread.is-collapsed.is-search-open .msg-thread-actions { display: flex; } 133 133 .msg-thread.is-collapsed .msg-thread-chevron { transform: rotate(-90deg); } 134 134 .msg-thread.is-collapsed .msg-thread-head { margin-bottom: 0; } … … 156 156 .msg-sub .msg-line { flex-wrap: wrap; } 157 157 158 /* De voet van een gesprek: antwoorden en zwaaien naast elkaar, ingeklapt. 158 /* Antwoorden en zwaaien naast elkaar, ingeklapt, en sinds 25-8 BOVEN de 159 berichten -- daar staat het nieuwste, en daar antwoord je dus op. Heette 160 msg-thread-foot toen het onderaan stond; de marge verhuisde mee van top 161 naar bottom, anders plakt de rij tegen de eerste bubbel. 159 162 Een open editor onder elk gesprek maakt de lijst weer onleesbaar -- precies 160 163 wat deze weergave moest oplossen. */ 161 .msg-thread- foot { display: flex; align-items: flex-start; gap: .5rem; margin-top: .5rem; flex-wrap: wrap; }164 .msg-thread-actions { display: flex; align-items: flex-start; gap: .5rem; margin-bottom: .5rem; flex-wrap: wrap; } 162 165 .msg-reply { flex: 1 1 12rem; min-width: 0; } 163 166 .msg-reply > summary { cursor: pointer; font-size: .82rem; color: var(--ink-soft, #888); } -
src/views/partials/msg-item.ejs
r2c0c338 r824d1d0 50 50 <% } %> 51 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. %> 67 <ul class="msg-thread-msgs"> 68 <% (n.messages || []).slice().reverse().forEach(function (m) { %><%- include('msg-item', { n: m, seen: _tseen, inThread: true }) %><% }); %> 69 </ul> 70 <%# Antwoorden vanuit de draad zelf. Ingeklapt, want een open editor 71 onder elk gesprek maakt de lijst onleesbaar -- juist het probleem 72 dat deze weergave moest oplossen. De route kiest het pad: een 73 draad aan een post krijgt een reply, een draad aan een persoon een 74 direct bericht. %> 52 <%# Antwoorden vanuit de draad zelf, BOVEN de berichten (Robins 53 besluit, 25-8). Sinds het nieuwste bovenaan staat, is de bovenkant 54 waar het gesprek nu is: antwoorden hoort bij het laatste bericht, 55 en dat staat er direct onder. Onderaan zou de knop bij het OUDSTE 56 bericht komen te staan, en dat is precies waar je niet op 57 antwoordt. 58 59 Nog steeds ingeklapt, want een open editor onder elk gesprek maakt 60 de lijst onleesbaar -- juist het probleem dat deze weergave moest 61 oplossen. De route kiest het pad: een draad aan een post krijgt 62 een reply, een draad aan een persoon een direct bericht. %> 75 63 <%# shaer-r4c: precies de tak die de server ook kiest. /messages/reply 76 64 gaat naar deliverReply als er een interaction+post is (dat is een … … 80 68 <% var _kan = canMutate && ((_thread && locals.mayReply !== false) || (!_thread && _rt.actorUri)); %> 81 69 <% if (_kan) { %> 82 <div class="msg-thread-foot"> 70 <%# Heette msg-thread-foot toen hij onderaan stond. Een naam die 71 zegt waar iets staat is een leugen zodra het verhuist, dus nu 72 zegt hij wat het IS. %> 73 <div class="msg-thread-actions"> 83 74 <details class="msg-reply"> 84 75 <summary><%= t('fedi.reply') %></summary> … … 107 98 </div> 108 99 <% } %> 100 <%# NIEUWSTE BOVENAAN binnen een gesprek (Robins besluit, 25-8). De 101 LIJST van gesprekken en de meldingen blijven staan zoals ze 102 stonden; alleen binnen een draad leest het van nieuw naar oud, dus 103 wat er net bij kwam staat er meteen en niet onderaan een lange 104 draad. 105 106 Op een KOPIE, want groupConversations sorteert `messages` 107 oplopend en de rest van deze pagina rekent daarop -- `_tnew` en 108 `_tto` hierboven lezen dezelfde array. Een reverse() zonder 109 slice() draait het origineel om en dat werkt door naar alles wat 110 er daarna nog naar kijkt. 111 112 In de MARKUP en niet met column-reverse: die draait alleen het 113 beeld om, terwijl een schermlezer en het toetsenbord de oude 114 volgorde houden. %> 115 <ul class="msg-thread-msgs"> 116 <% (n.messages || []).slice().reverse().forEach(function (m) { %><%- include('msg-item', { n: m, seen: _tseen, inThread: true }) %><% }); %> 117 </ul> 109 118 </li> 110 119 <% } else { %>
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)