@devchitchat/chat 4.4.0 → 4.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devchitchat/chat",
3
- "version": "4.4.0",
3
+ "version": "4.4.2",
4
4
  "description": "A small chat app. p2p video and screenshare.",
5
5
  "scripts": {
6
6
  "dev": "bun --watch index.js",
@@ -213,7 +213,10 @@
213
213
  </div>
214
214
  <footer class="thread-composer">
215
215
  <textarea class="thread-textarea" id="thread-input" placeholder="Reply in thread…" rows="2" aria-label="Reply in thread"></textarea>
216
- <button class="btn-send thread-send-btn" id="thread-send" type="button">Reply</button>
216
+ <div class="thread-composer-actions">
217
+ <button class="btn-icon thread-panel-close thread-close-mobile" aria-label="Close thread" type="button">Close thread</button>
218
+ <button class="btn-send thread-send-btn" id="thread-send" type="button">Reply</button>
219
+ </div>
217
220
  </footer>
218
221
  </div>
219
222
 
@@ -502,7 +502,6 @@ export default function CallIsland(root) {
502
502
  const threadRepliesEl = document.getElementById('thread-replies')
503
503
  const threadInputEl = document.getElementById('thread-input')
504
504
  const threadSendBtn = document.getElementById('thread-send')
505
- const threadCloseBtn = document.getElementById('thread-panel-close')
506
505
 
507
506
  let activeThreadParentId = null
508
507
 
@@ -553,7 +552,10 @@ export default function CallIsland(root) {
553
552
  if (threadRepliesEl) threadRepliesEl.innerHTML = ''
554
553
  }
555
554
 
556
- threadCloseBtn?.addEventListener('click', closeThread)
555
+ // Use delegation so both the top ✕ and the mobile footer "Close thread" button work
556
+ threadPanelEl?.addEventListener('click', e => {
557
+ if (e.target.closest('.thread-panel-close')) closeThread()
558
+ })
557
559
 
558
560
  function sendThreadReply() {
559
561
  const text = threadInputEl?.value.trim()
@@ -1457,7 +1457,26 @@ mark { background: color-mix(in srgb, var(--accent) 30%, transparent); color: va
1457
1457
 
1458
1458
  /* Mobile: full-width overlay */
1459
1459
  @media (max-width: 700px) {
1460
- .thread-panel { width: 100%; }
1460
+ .thread-panel {
1461
+ width: 100%;
1462
+ /* Push header below notch/Dynamic Island on iPhone PWA */
1463
+ padding-top: env(safe-area-inset-top);
1464
+ }
1465
+ .thread-close-mobile { display: inline-flex; }
1466
+ }
1467
+
1468
+ .thread-composer-actions {
1469
+ display: flex;
1470
+ align-items: center;
1471
+ justify-content: flex-end;
1472
+ gap: 8px;
1473
+ }
1474
+
1475
+ .thread-close-mobile {
1476
+ display: none; /* desktop: hidden; mobile: shown via media query above */
1477
+ font-size: 13px;
1478
+ opacity: 0.7;
1479
+ margin-right: auto; /* push Reply button to the right */
1461
1480
  }
1462
1481
 
1463
1482
  /* ── Call: status row (shown when a call is active, user hasn't joined) ──── */