]> Repos - mime-chat/commitdiff
remove old message event listeners
authorEnrique Hernandez <hernandeze2@xavier.edu>
Sun, 14 Feb 2021 21:46:48 +0000 (15:46 -0600)
committerEnrique Hernandez <hernandeze2@xavier.edu>
Sun, 14 Feb 2021 21:46:48 +0000 (15:46 -0600)
13 files changed:
src/background/window.ts
src/components/home/index.vue [deleted file]
src/components/home/messageVisualizer/index.vue [deleted file]
src/components/messageView/index.vue [new file with mode: 0644]
src/components/messageView/viewDetails/anime.ts [moved from src/components/home/messageVisualizer/viewDetails/anime.ts with 100% similarity]
src/components/messageView/viewDetails/offsetCalculator.ts [moved from src/components/home/messageVisualizer/viewDetails/offsetCalculator.ts with 100% similarity]
src/components/messageView/viewDetails/visualizer.ts [moved from src/components/home/messageVisualizer/viewDetails/visualizer.ts with 97% similarity]
src/components/taInput/inputController.ts
src/components/textBubble/bubbleDetails/computed.ts [moved from src/components/home/messageBubble/bubbleDetails/computed.ts with 96% similarity]
src/components/textBubble/bubbleDetails/drawer.ts [moved from src/components/home/messageBubble/bubbleDetails/drawer.ts with 100% similarity]
src/components/textBubble/index.vue [moved from src/components/home/messageBubble/index.vue with 97% similarity]
src/preload.ts
src/views/home.vue

index 1fb69e95196c5ed55dd1547ee4445bdfc54a9aad..8967dea36fa8ca2ec21838af6a7d08a573c8fc6c 100644 (file)
@@ -3,7 +3,6 @@
 import { BrowserWindow, ipcMain } from "electron";
 import { createProtocol } from "vue-cli-plugin-electron-builder/lib";
 import { backgroundMitt } from './emitter';
-import { sendMessage } from './session';
 import { updateRecorder } from './audio';
 import * as path from "path";
 
@@ -13,46 +12,35 @@ interface WindowSettings {
   resizable: boolean;
 }
 
-interface TextMessage {
-    audio: 0;
-    content: string;
-}
-
 interface RenderMessage {
-    content: string;
-    context: string;
-    subContext: string;
-    modifiers: string;
-    time: string;
-    id: string;
+  content: string;
+  context: string;
+  subContext: string;
+  modifiers: string;
+  time: string;
+  id: string;
 }
 
 interface IpcRendererPayload {
-    endpoint: string;
-    message: RenderMessage | null;
+  endpoint: string;
+  message: RenderMessage | null;
 }
 
 let win: BrowserWindow | null;
 
-const handleMessage = (_event, arg: TextMessage | Buffer ) => {
-  sendMessage(arg);
-}
-
 const windowMount = (): void => {
   backgroundMitt.emit('window-active', true);
-  ipcMain.on('send-message', handleMessage);
   ipcMain.on('update-recorder', updateRecorder);
 }
 
 const windowDismount = (): void => {
-    win = null;
-    backgroundMitt.emit('window-active', false);
-    ipcMain.removeAllListeners('send-message');
-    ipcMain.removeAllListeners('update-recorder');
+  win = null;
+  backgroundMitt.emit('window-active', false);
+  ipcMain.removeAllListeners('update-recorder');
 }
 
 backgroundMitt.on('ipc-renderer', (payload: IpcRendererPayload) => {
-    if (win)
+  if (win)
     win.webContents.send(payload.endpoint, {
       message: payload.message
     });
@@ -63,7 +51,7 @@ export const createWindow = async (options: WindowSettings): Promise<void> => {
 
     if (win) resolve();
 
-    win= new BrowserWindow({
+    win = new BrowserWindow({
       width: options.width,
       height: options.height,
       resizable: options.resizable,
@@ -90,7 +78,7 @@ export const createWindow = async (options: WindowSettings): Promise<void> => {
 
     win.webContents.on('did-finish-load', () => {
       windowMount();
-      if (win)resolve();
+      resolve();
     });
 
   });
diff --git a/src/components/home/index.vue b/src/components/home/index.vue
deleted file mode 100644 (file)
index a85b92c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<template>
-  <svg
-    id="messenger"
-    version="1.1"
-    xmlns="http://www.w3.org/2000/svg"
-    xmlns:xlink="http://www.w3.org/1999/xlink"
-    @click="emittMessage"
-  >
-    <MessageVisualizer />
-    <TextAudioInput />
-  </svg>
-</template>
-
-<script lang="ts">
-
-// child components
-import MessageVisualizer from "./messageVisualizer/index.vue";
-import TextAudioInput from "@/components/taInput/index.vue";
-
-// event emitter
-import { Mitt } from "@/types/mitt/index";
-
-import { defineComponent, ref, inject } from "vue";
-
-export default defineComponent({
-
-  name: "Messenger",
-  components: { MessageVisualizer, TextAudioInput },
-  
-  setup() {
-    const count = ref(0);
-
-    // imports mitt Emitter safely
-    let emitter: Mitt;
-    const emitterInject: Mitt | undefined = inject("mitt");
-
-    if (emitterInject) {
-      emitter = emitterInject;
-    }
-
-    // Render message when render-message event called.
-    window.ipcRenderer.on("render-message", (event, payload) => {
-      console.log(payload.message);
-      emitter.emit("renderMessage", payload.message);
-    });
-
-  },
-});
-
-</script>
-
-<style lang="scss" scoped>
-  #messenger {
-    width: 350px;
-    height: 500px;
-    background-color: #e6e6e6;
-    box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.3);
-    // border-radius: 20px;
-  }
-</style>
diff --git a/src/components/home/messageVisualizer/index.vue b/src/components/home/messageVisualizer/index.vue
deleted file mode 100644 (file)
index 57657eb..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<template>
-  <svg
-    version="1.1"
-    xmlns="http://www.w3.org/2000/svg"
-    xmlns:xlink="http://www.w3.org/1999/xlink"
-    :viewBox="scrollView"
-  >
-    <g id="messageVisualizer" transform="translate(0, 5)">
-      <g
-        v-for="(item, index) in renderArr"
-        :key="index"
-        class="messageList"
-        transform="translate(0, 25)"
-        preserverAspectRatio="none"
-      >
-        <transition
-          appear
-          v-on:before-appear="beforeEnter"
-          v-on:appear="enter"
-          v-on:after-enter="afterEnter"
-        >
-          <MessageItem :item="item" :key="index" />
-        </transition>
-      </g>
-    </g>
-  </svg>
-</template>
-
-<script lang="ts">
-import useMessageVisualizer from "./viewDetails/visualizer";
-import useScrollView from "@/modules/scrollView";
-import MessageItem from "../messageBubble/index.vue";
-import { Message } from "@/types/message/index";
-import {onMounted, defineComponent, reactive, inject, ref, watch, onUnmounted } from "vue";
-import useMitt from '@/modules/mitt';
-import { useIpc } from '@/modules/ipc';
-
-export default defineComponent({
-  name: "MessageVisualizer",
-  components: { MessageItem },
-  setup() {
-    const renderArr: Message[] = reactive([]);
-    const { emitter } = useMitt();
-    const { data, invoke } = useIpc('async-message')
-    const rendering = ref(false)
-
-    onMounted(() => {
-
-        emitter.on("renderMessage", (payload: Message | undefined) => {
-          if (payload) renderArr.push(payload);
-        });
-
-        emitter.on("animateSend", async (message) => {
-            rendering.value = true;
-            try {
-                await invoke(message);
-                renderArr.push(data.value);
-            } catch(e) {
-                console.log('No response. Do not render.')
-            }
-            rendering.value = true;
-        })
-
-    })
-
-    onUnmounted(() => {
-        emitter.all.clear();
-    })
-
-    const { beforeEnter, enter, afterEnter } = useMessageVisualizer();
-    const { scrollView } = useScrollView({
-      targetId: "messageVisualizer",
-    });
-
-    return {
-      renderArr,
-      beforeEnter,
-      enter,
-      afterEnter,
-      scrollView,
-    };
-  },
-});
-</script>
-
-<style lang="scss" scoped>
-svg {
-  height: 1%;
-  overflow: hidden;
-}
-#messageRenderer {
-  margin: 0;
-}
-</style>
diff --git a/src/components/messageView/index.vue b/src/components/messageView/index.vue
new file mode 100644 (file)
index 0000000..56f04f0
--- /dev/null
@@ -0,0 +1,91 @@
+<template>
+  <svg
+    version="1.1"
+    xmlns="http://www.w3.org/2000/svg"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    :viewBox="scrollView"
+  >
+    <g id="messageView" transform="translate(0, 5)">
+      <g
+        v-for="(item, index) in renderArr"
+        :key="index"
+        class="messageList"
+        transform="translate(0, 25)"
+        preserverAspectRatio="none"
+      >
+        <transition
+          appear
+          v-on:before-appear="beforeEnter"
+          v-on:appear="enter"
+          v-on:after-enter="afterEnter"
+        >
+          <TextBubble :item="item" :key="index" />
+        </transition>
+      </g>
+    </g>
+  </svg>
+</template>
+
+<script lang="ts">
+import useMessageView from "./viewDetails/visualizer";
+import useScrollView from "@/modules/scrollView";
+import TextBubble from "@/components/textBubble/index.vue";
+import { Message } from "@/types/message/index";
+import { defineComponent, reactive, onMounted, onUnmounted } from "vue";
+import useMitt from "@/modules/mitt";
+import { useIpc } from "@/modules/ipc";
+
+export default defineComponent({
+  name: "MessageView",
+  components: { TextBubble },
+  setup() {
+    const renderArr: Message[] = reactive([]);
+    const { emitter } = useMitt();
+    const { data, invoke } = useIpc("async-message");
+
+    onMounted(() => {
+      window.ipcRenderer.on("render-message", (event, payload) => {
+        const message = payload.message;
+        if (message) renderArr.push(message);
+      });
+
+      emitter.on("animateSend", async (message) => {
+        try {
+          await invoke(message);
+          renderArr.push(data.value);
+        } catch (e) {
+          console.log("No response. Do not render.");
+        }
+      });
+    });
+
+    onUnmounted(() => {
+      window.ipcRenderer.removeAllListeners("render-message");
+      emitter.all.clear();
+    });
+
+    const { beforeEnter, enter, afterEnter } = useMessageView();
+    const { scrollView } = useScrollView({
+      targetId: "messageView",
+    });
+
+    return {
+      renderArr,
+      beforeEnter,
+      enter,
+      afterEnter,
+      scrollView,
+    };
+  },
+});
+</script>
+
+<style lang="scss" scoped>
+svg {
+  height: 1%;
+  overflow: hidden;
+}
+#messageRenderer {
+  margin: 0;
+}
+</style>
similarity index 97%
rename from src/components/home/messageVisualizer/viewDetails/visualizer.ts
rename to src/components/messageView/viewDetails/visualizer.ts
index 894b2f821ce039b28ea8de2bcc70380b9d4ccbab..f99ddf4f0d09f41ac0e45df5fa4431f1797f4ad3 100644 (file)
@@ -6,7 +6,7 @@ import useOffsetCalculator from './offsetCalculator';
  * handles visualization of view messages through
  * vue transition callbacks and anime-js animations
  */
-export default function useMessageVisualizer(): {
+export default function useMessageView(): {
     beforeEnter: VueTransitionCallback;
     enter: VueTransitionCallback;
     afterEnter: VueTransitionCallback;
index 82b69316d3f8166a44e5a381ed7edb07301909f6..82849992cc322cebe6cd8878e0f53b24b9f95851 100644 (file)
@@ -17,24 +17,16 @@ export default function useInputController() {
     const paths = ref([]);
     const audioBubbleWidth = ref(10);
     let stream: MediaStream;
-     const emitter: any = inject("mitt");
+    const emitter: any = inject("mitt");
 
     // send message on ENTER
     const enterCallback = (input: string) => {
 
         const message = {
-          audio: 0,
-          text: input
+            audio: 0,
+            text: input
         };
-        console.log('emit message on enter', message);
         emitter.emit("animateSend", message);
-
-        // await response
-        // window.postMessage({
-        //   myTypeField: 'send-message',
-        //   message: message
-        // }, '*')
-
     }
 
     const { visualizeStreamAsPaths, expandBubble } = useAudioVisualizer(visualizeStream);
@@ -42,13 +34,13 @@ export default function useInputController() {
     const { textInputXoffset, renderTextInput } = useTextVisualizer(input);
 
     // stops stream recording on space key up
-    function keyupHandler(e: any) {
+    function keyupHandler(_e) {
         if (e.key === " " && visualizeStream.value) {
             console.log("stop recording");
 
             window.postMessage({
-              myTypeField: 'update-recorder',
-              record: false
+                myTypeField: 'update-recorder',
+                record: false
             }, '*')
 
             visualizeStream.value = false;
@@ -80,8 +72,8 @@ export default function useInputController() {
             visualizeStream.value = true;
 
             window.postMessage({
-              myTypeField: 'update-recorder',
-              record: true
+                myTypeField: 'update-recorder',
+                record: true
             }, '*')
 
             expandBubble(audioBubbleWidth);
similarity index 96%
rename from src/components/home/messageBubble/bubbleDetails/computed.ts
rename to src/components/textBubble/bubbleDetails/computed.ts
index 4e28ec4af5b410df9a6bdfc03f5721a0d52ee9f4..c3b47695478715b6eb7e8faa580a11c36c8ed38b 100644 (file)
@@ -49,7 +49,7 @@ export default function useComputedBubble(m: string, id: string) {
     }
 
     const startingOffset = computed(() => {
-        const parentView = document.getElementById('messageVisualizer');
+        const parentView = document.getElementById('messageView');
         if (parentView) {
             const rect = parentView.getBoundingClientRect();
             let Y = 600;
similarity index 97%
rename from src/components/home/messageBubble/index.vue
rename to src/components/textBubble/index.vue
index 03041b11bac8ebf37ef159bf9cf8be43138874b3..a19ac84d77388888b33e35bc5e6ab56e28485456 100644 (file)
 <script lang="ts">
 import useComputedBubble from "./bubbleDetails/computed";
 import useBubbleDrawer from "./bubbleDetails/drawer";
-
-// text wrap composition
 import useTextWrap from "@/modules/textWrap";
-
 import { defineComponent, onMounted, ref, reactive } from "vue";
+
 export default defineComponent({
-  name: "MessageItem",
+  name: "TextBubble",
   props: {
     item: {
       type: Object,
index b0cd4b9ac42a1a28da85a9afa8b7d74303538f0b..ce5f0bf01018d612f42c67303285b1a9f3adaf14 100644 (file)
@@ -17,10 +17,6 @@ process.once("loaded", () => {
     // do something with custom event
     const message = event.data;
 
-    if (message.myTypeField === "send-message") {
-      ipcRenderer.send("send-message", message.message);
-    }
-
     if (message.myTypeField === "update-menu-bar") {
       ipcRenderer.send("update-menu-bar", message);
     }
@@ -29,10 +25,6 @@ process.once("loaded", () => {
       ipcRenderer.send("update-recorder", message.record);
     }
 
-    if (message.myTypeField === "submit-creds") {
-      ipcRenderer.send("submit-creds", message)
-    }
-
   });
 
-});
\ No newline at end of file
+});
index 0efa2ba5be5103fa30cc22988be982bab549b63a..2250cc6716fbf4b6ef79f433f3c2b88b9c58cf14 100644 (file)
@@ -1,17 +1,33 @@
 <template>
-  <HomeComponent />
+  <svg
+    id="messenger"
+    version="1.1"
+    xmlns="http://www.w3.org/2000/svg"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    @click="emittMessage"
+  >
+    <MessageView />
+    <TextAudioInput />
+  </svg>
 </template>
 
 <script lang="ts">
-
+import MessageView from "@/components/messageView/index.vue";
+import TextAudioInput from "@/components/taInput/index.vue";
 import { defineComponent } from "vue";
-import HomeComponent from "@/components/home/index.vue";
 
 export default defineComponent({
-    
-  name: "Home",
-  components: { HomeComponent },
-
+  name: "Messenger",
+  components: { MessageView, TextAudioInput },
 });
-
 </script>
+
+<style lang="scss" scoped>
+#messenger {
+  width: 350px;
+  height: 500px;
+  background-color: #e6e6e6;
+  box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.3);
+  // border-radius: 20px;
+}
+</style>