Changeset 5412cbb in Klonkt for src/assets/js/ward.js
- Timestamp:
- 08/12/2026 08:38:08 PM (3 months ago)
- Children:
- 2086ea2
- Parents:
- 4bb93aa
- File:
-
- 1 edited
-
src/assets/js/ward.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/ward.js
r4bb93aa r5412cbb 232 232 const c = convs[i]; 233 233 if (c) openThread(c); 234 }); 234 }, () => openFriendsPicker()); 235 236 /* ── De (+): de deur naar iemand nieuw ───────────────────────────────── 237 De hemel toont alleen met wie je al sprak; de kiezer toont iedereen met 238 een volgrelatie. Kies iemand en het lege gesprek opent gewoon: het 239 eerste bericht maakt het echt. */ 240 const friendsDlg = document.getElementById('friends-dialog'); 241 async function openFriendsPicker() { 242 const list = document.getElementById('friends-list'); 243 list.replaceChildren(); 244 friendsDlg.showModal(); 245 try { 246 const r = await fetch('/ward/api/friends', { headers: { Accept: 'application/json' } }); 247 const items = r.ok ? (await r.json()).items || [] : []; 248 document.getElementById('friends-empty').hidden = items.length > 0; 249 items.forEach((f) => { 250 const li = el('li', 'card friend'); 251 const row = el('button', 'row'); 252 row.type = 'button'; 253 if (f.icon) { 254 const img = el('img', 'avatar'); 255 img.src = f.icon; img.alt = ''; img.loading = 'lazy'; 256 row.append(img); 257 } 258 const kolom = el('span', 'wie'); 259 kolom.append(el('span', 'name', f.name), el('span', 'hint', f.handle)); 260 row.append(kolom); 261 row.addEventListener('click', () => { 262 friendsDlg.close(); 263 openThread({ uri: f.uri, name: f.name, icon: f.icon }); 264 }); 265 li.append(row); 266 list.append(li); 267 }); 268 } catch { /* de kiezer blijft leeg staan; annuleren kan altijd */ } 269 } 270 document.getElementById('friends-cancel').addEventListener('click', () => friendsDlg.close()); 235 271 236 272 /* ── Het gesprek: een overlay OVER de levende hemel ────────────────────
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)