]> Repos - mime-chat/commitdiff
reverting changes in polish manually
authorAndrew Gundersen <gundersena@xavier.edu>
Thu, 20 Jan 2022 17:39:39 +0000 (11:39 -0600)
committerAndrew Gundersen <gundersena@xavier.edu>
Thu, 20 Jan 2022 17:39:39 +0000 (11:39 -0600)
src/render/components/app.js
src/render/components/bubble.js
src/render/components/control/scroll.js
src/render/components/messenger.js
src/render/preload.js
src/session.js

index 78ab5daef2c1fb603a16e7111b4889ea911580ee..37d5a1b63ae698ab1f00c198e82957747f19afe7 100644 (file)
@@ -38,3 +38,6 @@ window.mainApi.on("set-account", (account_) => {
 
 export default App;
 export { account };
+
+// Is called when window is about to close or reload
+window.onbeforeunload = () => console.log("beforeunload");
\ No newline at end of file
index 59e04170fbb24777f6765ff9a25eda7d778ab297..1eaa48e1367b82f68bf0563b69a06b806dcf960a 100644 (file)
@@ -9,7 +9,7 @@ const Bubble =
         }
 
         Vue.onMounted(() => {
-            document.dispatchEvent(new CustomEvent("scroll"));
+            document.getElementById("messenger").dispatchEvent(new CustomEvent('adjust-scroll'));
         });
 
         return { getUrl };
index db0dd3b98d9c6665c0073bd25e0fe8937525dc75..4666ea151a9572f9623189b6fcef3c3320caa4ee 100644 (file)
@@ -7,11 +7,13 @@ const initScroll = (elementId) => {
 }
 
 const isBottom = () => {
-  return el.scrollHeight - el.clientHeight <= el.scrollTop + 1;
+  if (el) {
+    return el.scrollHeight - el.clientHeight <= el.scrollTop + 1;
+  }
 }
 
 const adjustScroll = () => {
-  if (isBottom()) {
+  if (el) {
     el.scrollTo({
       top: el.scrollHeight - el.clientHeight,
       behavior: 'smooth'
index fe7326382c424db3c5258f57c022e400fb521752..6a1e9a2546e57ad7acbaaa33a54f1c17a05de3d2 100644 (file)
@@ -1,5 +1,5 @@
 import onDrop from "./control/drop.js";
-import adjustScroll from "./control/scroll.js";
+import initScroll from "./control/scroll.js";
 
 import WS from "./ws.js";
 import Input from "./input.js";
@@ -22,24 +22,34 @@ const Messenger = {
 
         Vue.onMounted(() => {
 
-            window.mainApi.on("update", (update) => {
+            window.mainApi.on("message", (update) => {
 
-                if (update.name)
+                if (update.person)
+                {
+                    person.value = update.person;
+                    messages.value = update.messages;
+                }
+                else if (update.name)
                 {
                     person.value = update;
                 }
-                else if (message.content)
+                else if (update.content)
                 {
                     messages.value.push(update);
                 }
                 else
                 {
-                    messages.value.at(-1).content.push(update);
+                    messages.value[messages.value.length - 1].content.push(update);
                 }
 
             });
 
-            window.mainApi.send("message", {route: "window", open: true});
+            initScroll("messenger");
+            window.mainApi.send("messenger");
+        });
+
+        Vue.onUnmounted(() => {
+            messages.value = [];
         });
 
         return { person, messages, onDrop };
@@ -67,6 +77,3 @@ const Messenger = {
 }
 
 export default Messenger;
-
-// Is called when window is about to close or reload
-window.onbeforeunload = () => window.mainApi.send("message", {route: "window", open: true});
index e3c66f97341c453de5ffa26186e8bd4a3701ee14..a2f389603e1c0987b30e742f89f31ad69d1e959f 100644 (file)
@@ -4,7 +4,7 @@ const { contextBridge, ipcRenderer } = require("electron");
 
 const validFromMainChannels = [
     "set-account", 
-    "update", 
+    "message", 
     "ws-status",
     "record",
     "playback"
index f786dcb8a34850cec41ff43556ef59a534e3e6d1..3d6ccdfe141dbe6c4b05a411aa81e25b6ed84757 100644 (file)
@@ -5,13 +5,22 @@ const { backgroundMitt, ipcEmit } = require("./utils/emitter");
 const { connectToPlatform, disconnectFromPlatform } = require("./io");
 const { initAudio, terminateAudio, playback, streamState } = require("./audio");
 
+let ui;
+
 const messageQueue = [];
 
 let processContentId;
 
+/* Possible messages:
+ *    - New UI (set ui)
+ *    - New message (add message to ui.messages)
+ *    - New content (add content to existing message)
+ *    - Update person
+ *    - Notification
+ */
 backgroundMitt.on("message", (message) => messageQueue.push(message));
 
-function handleUpdateQueue()
+function handleMessageQueue()
 {
     if (!streamState.pb && !streamState.rec)
     {
@@ -19,15 +28,28 @@ function handleUpdateQueue()
 
         if (update)
         {
-            if (update.title)
+            if (update.person)
+            {
+                ui = update;
+            }
+            else if (update.name)
+            {
+                ui.person = update;
+            }
+            else if (update.content)
             {
-                new Notification(update).show();
+                ui.messages.push(update);
             }
-            else if (update.audio)
+            else if (update.category)
             {
-                playback(update);
+                ui.messages[ui.messages.length - 1].content.push(update);
             }
-            else { ipcEmit("update", update); }
+            else
+            {
+                new Notification(update).show(); return;
+            }
+
+            ipcEmit("message", update);
         }
     }
 }
@@ -36,7 +58,7 @@ function launchSession(account)
 {
     connectToPlatform(account);
     // initAudio();
-    processContentId = setInterval(handleUpdateQueue, 100);
+    processContentId = setInterval(handleMessageQueue, 100);
 }
 
 function endSession()
@@ -46,5 +68,11 @@ function endSession()
     disconnectFromPlatform();
 }
 
+ipcMain.on("messenger", () => {
+    if (ui) {
+        ipcEmit("message", ui);
+    }
+});
+
 exports.launchSession = launchSession;
 exports.endSession = endSession;