]> Repos - mime-chat/commitdiff
save states on ctrl W
authorAndrew Gundersen <gundersena@xavier.edu>
Sat, 20 Mar 2021 15:58:22 +0000 (10:58 -0500)
committerAndrew Gundersen <gundersena@xavier.edu>
Sat, 20 Mar 2021 15:58:22 +0000 (10:58 -0500)
src/App.vue
src/components/inputItem/inputItem.vue
src/modules/draggify.ts
src/modules/messages.ts
windowState.json

index 308977c0f8d06cd91ec084d8dbf7819fa86aeb37..116efb189a0b56654df1d7476b9a850ddb39cd6a 100644 (file)
@@ -29,7 +29,6 @@
 import { defineComponent, onMounted, onUnmounted, ref } from 'vue';
 import { useIpc } from "@/modules/ipc";
 import Splash from "@/components/splash.vue"
-import useMessages from '@/modules/messages';
 
 export default defineComponent({
   components: { Splash },
@@ -43,11 +42,10 @@ export default defineComponent({
 
     // Post navbar action to backend.
     const callNavbar = (action: string) => {
-      console.log("Calling navbar")
       invoke('nav-bar', action);
     }
 
-    const onWindowReady = (_event: any, payload: any) => {
+    const onWindowReady = (_event: any, _payload: any) => {
       ready.value = true;
     }
 
index 91ef8631d23c70a346d94dcef40a098f0ee27712..4dc34095a0fe4dbf0835660a9f6312f152c6186e 100644 (file)
@@ -42,22 +42,9 @@ export default defineComponent({
     // Mark input item with user's initials.
     const initials = ref("")
 
-    // ---Set xStart and yStart------------------------------------
-    const cordsStr = window.localStorage.getItem("input_cords")
-
-    let cords = {x: 15, y: window.innerHeight - 200} // default values
-
-    if (cordsStr) {
-      console.log("found archived cords!")
-      cords = JSON.parse(cordsStr)
-    }
-
-    const xStart = cords.x;
-    const yStart = cords.y;
-
-    console.log(`xStart: ${xStart}`)
-    console.log(`yStart: ${yStart}`)
-    // ------------------------------------------------------------
+    // Default values for position.
+    const xStart = 15;
+    const yStart = window.innerHeight - 200;
 
     // Calculate position of inputItem on drag.
     const { elementX, elementY } = draggify("inputItem", xStart, yStart, 15);
@@ -75,17 +62,6 @@ export default defineComponent({
       window.ipcRenderer.on("update-profile", onUpdateProfile);
     }) 
 
-    const savePosition = () => {
-      const cords = JSON.stringify(
-        {
-          x: elementX.value, 
-          y: elementY.value
-        }
-      )
-      window.localStorage.setItem("input_cords", cords)
-      console.log(`Start saved: ${cords}`)
-    }
-
     onUnmounted(() => {
       window.ipcRenderer.removeAllListeners("update-profile");
     })
index 5e400ab068efb236bd963782ce0edb74910d10d4..f3d89786599929d76be1547d0262c026257a41f4 100644 (file)
@@ -69,7 +69,6 @@ export default function draggify(elementId: string, xStart: number,
           }, 16) // 60fps
 
         }
-
     }
 
     //---Event Handlers-----------------------------------------------
@@ -130,6 +129,12 @@ export default function draggify(elementId: string, xStart: number,
       percentX = elementX.value / winW;
       percentY = elementY.value / winH;
 
+      // Save position.
+      const position = {
+        x: elementX.value,
+        y: elementY.value
+      }
+      window.localStorage.setItem("inputItem_position", JSON.stringify(position));
     }
 
     // Update position of targetEl on windowResize.
@@ -166,9 +171,18 @@ export default function draggify(elementId: string, xStart: number,
       window.addEventListener('resize', onWindowResize, false);
     });
 
-    // Initialize the coordinants.
-    elementX.value = xStart;
-    elementY.value = yStart;
+    // Try loading initPosition, otherwise set default values
+    let initPosition: any;
+    const rawData = window.localStorage.getItem("inputItem_position")
+
+    if (rawData) {
+      initPosition = JSON.parse(rawData)
+    } else {
+      initPosition = {x: xStart, y: yStart}
+    }
+
+    elementX.value = initPosition.x;
+    elementY.value = initPosition.y;
 
     // remove event listeners on component dismount.
     onUnmounted(() => {
index c7f6144c0da3b7ce72da955dbd4fb58bd054d18f..52953e5c6462e81c1407b756c87bc5b209895551 100644 (file)
@@ -72,6 +72,12 @@ export default function useMessages() {
     // Control the scrolling.
     const { updateScrollRef, adjustScroll } = useScroll("messenger");
 
+    // Save message to local storage.
+    const saveMessages = () => {
+        const messageData = Object.fromEntries(messages.value);
+        window.localStorage.setItem(messagesKey, JSON.stringify(messageData));
+    }
+
     // Add a new message to the view.
     const addMessage = (message: RenderMessage) => {
       updateScrollRef()
@@ -84,6 +90,7 @@ export default function useMessages() {
 
       setTimeout(adjustScroll, 20);
       updateGrouping(message.uid)
+      saveMessages()
     }
 
     // Update an existing message in the view.
@@ -96,13 +103,7 @@ export default function useMessages() {
         message.content.text = a.text
 
         setTimeout(adjustScroll, 20);
-    }
-
-    // Used in App.vue on shutdown.
-    const saveMessages = () => {
-        // de-reactivate message data before saving.
-        const messageData = Object.fromEntries(messages.value);
-        window.localStorage.setItem(messagesKey, JSON.stringify(messageData));
+        saveMessages()
     }
 
     return {
index 99576889072f57cf4728d334be291d7788b897ef..7289e3d3b6f55df397b50977a2de3bb0c9961bbf 100644 (file)
@@ -1 +1 @@
-{"w":688,"h":536,"x":1478,"y":513}
\ No newline at end of file
+{"w":432,"h":702,"x":1753,"y":477}
\ No newline at end of file