()
| 1464 | a.textContent = I18n.interactions.ephemeralDismiss(); |
| 1465 | ephemeral.append(span, a); |
| 1466 | div.append(ephemeral); |
| 1467 | } |
| 1468 | const unreadLine = premessage && premessage.id === this.channel.lastreadmessageid; |
| 1469 | let datelineNeeded = false; |
| 1470 | if ((premessage || unreadLine) && !dupe) { |
| 1471 | const thisTime = new Date(this.getUnixTime()); |
| 1472 | if (premessage && !unreadLine) { |
| 1473 | const prevTime = new Date(premessage.getUnixTime()); |
| 1474 | datelineNeeded = |
| 1475 | thisTime.getDay() !== prevTime.getDay() || |
| 1476 | thisTime.getMonth() !== prevTime.getMonth() || |
| 1477 | thisTime.getFullYear() !== prevTime.getFullYear(); |
| 1478 | } else { |
| 1479 | datelineNeeded = true; |
| 1480 | } |
| 1481 | if (datelineNeeded) { |
| 1482 | const dateline = document.createElement("div"); |
| 1483 | if (unreadLine) { |
| 1484 | dateline.classList.add("unreadDateline"); |
| 1485 | } |
| 1486 | dateline.classList.add("flexltr", "dateline"); |
| 1487 | dateline.append(document.createElement("hr")); |
| 1488 | const span = document.createElement("span"); |
| 1489 | span.innerText = Intl.DateTimeFormat(I18n.lang, { |
| 1490 | year: "numeric", |
| 1491 | month: "long", |
| 1492 | day: "2-digit", |
| 1493 | }).format(thisTime); |
| 1494 | dateline.append(span); |
| 1495 | dateline.append(document.createElement("hr")); |
| 1496 | const messageDiv = document.createElement("div"); |
| 1497 | messageDiv.append(...Array.from(div.children)); |
| 1498 | messageDiv.classList = div.classList + ""; |
| 1499 | div.classList = ""; |
| 1500 | div.append(dateline, messageDiv); |
| 1501 | } |
| 1502 | } |
| 1503 | this.bindButtonEvent(); |
| 1504 | |
| 1505 | if (!dupe && this.thread) { |
| 1506 | const thread = this.thread; |
| 1507 | const threadBox = document.createElement("div"); |
| 1508 | threadBox.classList.add("flexttb", "threadBox"); |
| 1509 | const topRow = document.createElement("div"); |
| 1510 | topRow.classList.add("flexltr"); |
| 1511 | const title = document.createElement("span"); |
| 1512 | title.textContent = thread.name; |
| 1513 | topRow.onclick = () => { |
| 1514 | this.localuser.goToChannel(thread.id); |
| 1515 | }; |
| 1516 | const messages = document.createElement("span"); |
| 1517 | messages.classList.add("clickable"); |
| 1518 | messages.textContent = I18n.message.messages(thread.messageCount + ""); |
| 1519 | console.log(thread); |
| 1520 | topRow.append(title, messages); |
| 1521 | threadBox.append(topRow); |
| 1522 | div.append(threadBox); |
| 1523 | } |
no test coverage detected