From: Andrew Gundersen Date: Thu, 18 Nov 2021 15:42:05 +0000 (-0600) Subject: bux fixes, profile initials X-Git-Url: https://andrewgundersen.net/repos?a=commitdiff_plain;h=ccb07d594b21c573ad9da0eb2d6776a401b50faa;p=mime-chat bux fixes, profile initials --- diff --git a/src/account.js b/src/account.js index 378bcdb..4a0ffe8 100644 --- a/src/account.js +++ b/src/account.js @@ -5,6 +5,10 @@ const { postLogin } = require("./api"); const { ipcEmit } = require("./utils/emitter"); const { launchSession, endSession } = require("./session"); +// store.set("account", "smith12@gmail.com"); +store.set("account", "gundersena@crimata.com"); +// store.delete("account"); + async function login(_e, email, password) { const res = await postLogin(email, password); diff --git a/src/audio.js b/src/audio.js index 3ed4bd1..b879409 100644 --- a/src/audio.js +++ b/src/audio.js @@ -85,8 +85,13 @@ function playback(base64String, id) function terminateAudio() { globalShortcut.unregisterAll(); - clearInterval(setStreamsId); - nodeAudio.core.Terminate(); + + /* Only terminate PA if initialized */ + if (setStreamsId) + { + clearInterval(setStreamsId); + nodeAudio.core.Terminate(); + } } function setRecordingStatus(status) diff --git a/src/render/components/bubble.js b/src/render/components/bubble.js index c4949e4..7ceaadc 100644 --- a/src/render/components/bubble.js +++ b/src/render/components/bubble.js @@ -2,6 +2,19 @@ const Bubble = { props: ["modifier", "text", "child"], + setup(props) + { + Vue.onMounted(() => { + + const messengerEl = document.getElementById("messenger"); + + if (messengerEl) { + messengerEl.dispatchEvent(new CustomEvent('adjust-scroll')); + } + + }); + }, + template: `
{{ text }} diff --git a/src/render/components/context.js b/src/render/components/context.js index 374c1f2..859fe4d 100644 --- a/src/render/components/context.js +++ b/src/render/components/context.js @@ -21,7 +21,7 @@ const Context =
diff --git a/src/render/components/control/draggify.js b/src/render/components/control/draggify.js index e7545a0..f85b930 100644 --- a/src/render/components/control/draggify.js +++ b/src/render/components/control/draggify.js @@ -95,7 +95,6 @@ function draggify(elementId, margin) { const onMouseUp = (e) => { e.preventDefault(); - console.log("onMouseUp"); window.removeEventListener('mousemove', onMouseMove); window.removeEventListener('mouseup', onMouseUp); diff --git a/src/render/components/control/text.js b/src/render/components/control/text.js index e1a5250..9439df8 100644 --- a/src/render/components/control/text.js +++ b/src/render/components/control/text.js @@ -47,7 +47,7 @@ function useText(elementId, left, typing) if (e.key === "Enter" && el.value) { window.mainApi.send("message", { - text: el.value, audio: false }); + text: el.value, audio: null }); show.value = false; } }); @@ -56,7 +56,7 @@ function useText(elementId, left, typing) Vue.watch(left, calcSide); - Vue.watch(show, (c, p_) => { + Vue.watch(show, (c, _p) => { if (c) { el.focus(); } else { diff --git a/src/render/components/input.js b/src/render/components/input.js index 137f443..0bfe8e7 100644 --- a/src/render/components/input.js +++ b/src/render/components/input.js @@ -3,8 +3,12 @@ import draggify from "./control/draggify.js"; const Input = { - setup() + props: ["person"], + + setup(props) { + const initials = Vue.ref(""); + const recording = Vue.ref(false); const { elementX, elementY } = draggify("input", 15); @@ -13,7 +17,9 @@ const Input = window.mainApi.on("record", (status) => recording.value = status); - return { elementX, elementY, recording, leftSide, show }; + Vue.watch(() => props.person, (c, _p) => initials.value = getInitials(c)); + + return { initials, elementX, elementY, recording, leftSide, show }; }, template: ` @@ -21,7 +27,7 @@ const Input = :style="{ top: elementY + 'px', left: elementX + 'px' }" > -
+
{{ initials }}
` } +function getInitials(name) +{ + let rgx = new RegExp(/(\p{L}{1})\p{L}+/, 'gu'); + + let initials = [...name.matchAll(rgx)] || []; + + return ( + (initials.shift()?.[1] || '') + (initials.pop()?.[1] || '') + ).toUpperCase(); +} + export default Input; + diff --git a/src/render/components/message.js b/src/render/components/message.js index de822e2..28605c5 100644 --- a/src/render/components/message.js +++ b/src/render/components/message.js @@ -12,16 +12,6 @@ const Message = setup(props) { - Vue.onMounted(() => { - - const messengerEl = document.getElementById("messenger"); - - if (messengerEl) { - messengerEl.dispatchEvent(new CustomEvent('adjust-scroll')); - } - - }); - return { calcChild }; }, diff --git a/src/render/components/messenger.js b/src/render/components/messenger.js index 5151907..aa07e29 100644 --- a/src/render/components/messenger.js +++ b/src/render/components/messenger.js @@ -16,16 +16,23 @@ const Messenger = { setup() { + const person = Vue.ref(""); const messages = Vue.ref([]); Vue.onMounted(() => { window.mainApi.on("ui-init", (ui) => { - messages.value = ui; + person.value = ui.person; + messages.value = ui.messages; }); window.mainApi.on("ui-update", (message) => { - console.log(message) + + if (message.hasOwnProperty("person")) + { + person.value = message.person; + return; + } let index = messages.value.findIndex(m => m.id===message.id); if (index >= 0) @@ -47,13 +54,13 @@ const Messenger = { messages.value = []; }); - return { messages }; + return { person, messages }; }, template: ` - +
{ status.value = val; - console.log(status.value); }); }); diff --git a/src/render/preload.js b/src/render/preload.js index a2dded6..93bd7e6 100644 --- a/src/render/preload.js +++ b/src/render/preload.js @@ -50,4 +50,4 @@ contextBridge.exposeInMainWorld( ipcRenderer.removeAllListeners(channel); } } -); \ No newline at end of file +); diff --git a/src/session.js b/src/session.js index b4a1814..b131d30 100644 --- a/src/session.js +++ b/src/session.js @@ -13,13 +13,16 @@ let processContentId; backgroundMitt.on("ws-message", (message) => { - console.log(message) if (message.hasOwnProperty("ui")) { - console.log("INITING UI") ui = message.ui; ipcEmit("ui-init", ui); } + else if (message.hasOwnProperty("person")) + { + ui.person = message.person; + ipcEmit("ui-update", message); + } else { updateQueue.push(message); @@ -33,20 +36,20 @@ function handleMessage() const message = updateQueue.shift(); if (message) { - let index = ui.findIndex(m => m.id === message.id); + let index = ui.messages.findIndex(m => m.id === message.id); if (index >= 0) { - ui[index] = message; + ui.messages[index] = message; } else { - ui.push(message) + ui.messages.push(message) } if (message.modifier === "ai" && !store.get("focus")) { - new Notification({title: message.context, body: message.content}).show(); + new Notification({title: message.context, body: message.content[message.content.length - 1]}).show(); } if (message.audio) playback(message.audio, message.id);