]> Repos - mime-chat/commitdiff
scrolling bug scroll
authorAndrew Gundersen <gundersena@xavier.edu>
Sat, 13 Mar 2021 21:16:21 +0000 (15:16 -0600)
committerAndrew Gundersen <gundersena@xavier.edu>
Sat, 13 Mar 2021 21:16:21 +0000 (15:16 -0600)
src/components/settings.vue
src/modules/draggify.ts
src/modules/messages.ts
src/views/messenger.vue

index 57e82665550d9c623f9c4bf31636d7a756fd7413..307183c962289b3e348b4f8dd0f43fe502fa72af 100644 (file)
   display: flex;
   flex-direction: row;
 
+  padding: 5px;
   margin-right: 20px;
-  margin-top: 24px;
+  margin-top: 19px;
 
   z-index: 2;
-  background-color: #EBEBEB;
+  background-color: Transparent;
+}
+
+.settingsIcon:hover {
+  cursor: pointer;
 }
 
 .settingsButtonDot {
index 8ce6897fe0c865605e0cd21be22f2d026e0ca355..b357ddf5e76e82bcd7149b560fac26d578e199b4 100644 (file)
@@ -113,8 +113,8 @@ export default function draggify(input: { elementId: string }) {
     });
 
     // Initialize the coordinants.
-    elementX.value = 600 - 38 - 20;
-    elementY.value = 500 - 38 - 20;
+    elementX.value = 20;
+    elementY.value = 200 - 38 - 20;
 
     // remove event listeners on component dismount.
     onUnmounted(() => {
index a745c03f37e23e377865d93b0f902b3f6014e3db..654ca5952e77c0cd67453360823da2ff463af2f0 100644 (file)
@@ -25,23 +25,75 @@ function deleteOldest() {
    messages.value.delete(lastKey);
 }
 
+
+
+
+
+
+// Is the message div scrolled to the bottom?
+let isScrolledToBottom: boolean;
+
+// Update isScrolledToBottom
+const updateScrollRef = () => {
+  const e = document.getElementById("messenger")
+
+  if (e) {
+    isScrolledToBottom = e.scrollHeight - e.clientHeight <= e.scrollTop + 1
+  }
+
+}
+
+// Adjust scroll after we add content to the messenger.
+const adjustScroll = () => {
+  const e = document.getElementById("messenger")
+
+  if (e) {
+
+    console.log(`Bottom? : ${isScrolledToBottom}`)
+    console.log(e.scrollHeight)
+    console.log(e.clientHeight)
+    console.log(e.scrollTop)
+
+    // // Scroll to bottom if isScrolledToBottom is true
+    if (isScrolledToBottom) {
+      e.scrollTop = e.scrollHeight - e.clientHeight
+    }
+
+  }
+
+}
+
+
+
+
+
 export default function useMessages() {
 
     const addMessage = (m: RenderMessage) => {
+      updateScrollRef() // must update before we add new elements.
+
       console.log(`Adding message: ${m.content.text}`)
 
       // check for message limit before setting a new message.
       if (messages.value.size >= sizeLimit) deleteOldest();
       
       messages.value.set(m.uid, m);
+
+      adjustScroll()
     }
 
     const updateMessage = (a: Annotation) => {
+        updateScrollRef()
+
+        console.log(`Updating message...`)
+
         // update message if in the map.
         const m = messages.value.get(a.uid)
         m.context = a.context
         m.text = a.text
 
+        adjustScroll()
+
         return m
     }
 
index 7763b3bcfc6462032c0430ac1e3ef2f0c3977478..1e1e70b976d62b3d3fb9aa8a0fb8e13f5e4bb98a 100644 (file)
@@ -101,17 +101,10 @@ export default defineComponent({
 
 <style lang="scss" scoped>
 #messenger {
-  position: fixed;
-
   width: 100vw;
+  height: 100vh;
 
-  overflow-y: scroll;
-
-  bottom: 0;
-
-  overflow-y: scroll;
-
-  bottom: 0;
+  overflow: auto;
 }
 
 #messenger::-webkit-scrollbar {