| 1985 | tags.classList.add("flexltr", "tagDiv"); |
| 1986 | for (const tagid of this.appliedTags) { |
| 1987 | const tag = this.parent?.availableTags.find((tag) => tag.id === tagid); |
| 1988 | if (!tag) continue; |
| 1989 | tags.append(tag.makeHTML()); |
| 1990 | } |
| 1991 | div.append(tags); |
| 1992 | |
| 1993 | const title = document.createElement("h3"); |
| 1994 | title.textContent = new MarkDown(this.shortName).makeHTML().textContent; |
| 1995 | div.append(title); |
| 1996 | |
| 1997 | const member = |
| 1998 | (await this.localuser.getMember(this.owner_id as string, this.guild.id)) || |
| 1999 | (await User.resolve(this.owner_id as string, this.localuser)); |
| 2000 | const message = this.localuser.messages.get(this.id); |
| 2001 | |
| 2002 | const name = document.createElement("span"); |
| 2003 | name.classList.add("forumUsername"); |
| 2004 | name.textContent = (member?.name || I18n.user.deleted()) + ": "; |
| 2005 | |
| 2006 | const messageContent = document.createElement("span"); |
| 2007 | messageContent.classList.add("messageForumContent"); |
| 2008 | if (message) messageContent.append(message.content.makeHTML()); |
| 2009 | else messageContent.textContent = I18n.message.deleted(); |
| 2010 | |
| 2011 | const mrow = document.createElement("div"); |
| 2012 | mrow.classList.add("flexltr"); |
| 2013 | mrow.append(name, messageContent); |
| 2014 | div.append(mrow); |
| 2015 | |
| 2016 | const micon = document.createElement("span"); |
| 2017 | micon.classList.add("svg-frmessage", "svgicon"); |
| 2018 | |
| 2019 | const mcount = document.createElement("span"); |
| 2020 | mcount.textContent = this.messageCount + ""; |
| 2021 | |
| 2022 | const msep = document.createElement("span"); |
| 2023 | msep.classList.add("msep"); |
| 2024 | |
| 2025 | const mtime = document.createElement("span"); |
| 2026 | const updateTime = () => { |
| 2027 | mtime.textContent = MarkDown.relTime( |
| 2028 | new Date( |
| 2029 | this.lastmessageid ? SnowFlake.stringToUnixTime(this.lastmessageid) : this.getUnixTime(), |
| 2030 | ), |
| 2031 | () => { |
| 2032 | if (!document.contains(mtime)) return; |
| 2033 | updateTime(); |
| 2034 | }, |
| 2035 | ); |
| 2036 | }; |
| 2037 | updateTime(); |
| 2038 | |
| 2039 | const lrow = document.createElement("div"); |
| 2040 | lrow.classList.add("forumMessageRow", "flexltr"); |
| 2041 | |
| 2042 | lrow.append(micon, mcount, msep, mtime); |
| 2043 | div.append(lrow); |
| 2044 | |