diff --git a/src/snek/static/message-list.js b/src/snek/static/message-list.js index c6430f2..d80f7b9 100644 --- a/src/snek/static/message-list.js +++ b/src/snek/static/message-list.js @@ -80,7 +80,7 @@ class MessageList extends HTMLElement { const html = receivedHtml.querySelector(".text").innerHTML; const textElement = messageDiv.querySelector(".text"); textElement.innerHTML = html; - textElement.style.display = message.text == "" ? "none" : "block"; + messageDiv.style.display = message.text == "" ? "none" : "block"; if(scrollToBottom) this.scrollToBottom(true) } diff --git a/src/snek/view/rpc.py b/src/snek/view/rpc.py index 65b1ecf..5666912 100644 --- a/src/snek/view/rpc.py +++ b/src/snek/view/rpc.py @@ -268,22 +268,26 @@ class RPCView(BaseView): return result - async def _finalize_message_task(self, message_uid): - await asyncio.sleep(7) + async def _finalize_message_task(self,message_uid): + await asyncio.sleep(7) self._finalize_task = None - self._require_login() - message = await self.services.channel_message.get(message_uid) + message = await self.services.channel_message.get(message_uid, is_final=False) if not message: return False - if message["user_uid"] != self.user_uid: raise Exception("Not allowed") + if message["is_final"]: + return True + if not message["is_final"]: await self.services.chat.finalize(message["uid"]) + + return True + async def _queue_finalize_message(self, message_uid): if self._finalize_task: self._finalize_task.cancel() @@ -293,13 +297,18 @@ class RPCView(BaseView): async def send_message(self, channel_uid, message, is_final=True): self._require_login() - + + message = message.strip() + if not is_final: + if_final = False check_message = await self.services.channel_message.get(channel_uid=channel_uid, user_uid=self.user_uid,is_final=False) if check_message: await self._queue_finalize_message(check_message["uid"]) return await self.update_message_text(check_message["uid"], message) - + + + message = await self.services.chat.send( self.user_uid, channel_uid, message, is_final )