reverting changes in polish manually

This commit is contained in:
Andrew Gundersen 2022-01-20 11:39:39 -06:00
commit fb14847730
6 changed files with 60 additions and 20 deletions

View file

@ -38,3 +38,6 @@ window.mainApi.on("set-account", (account_) => {
export default App; export default App;
export { account }; export { account };
// Is called when window is about to close or reload
window.onbeforeunload = () => console.log("beforeunload");

View file

@ -9,7 +9,7 @@ const Bubble =
} }
Vue.onMounted(() => { Vue.onMounted(() => {
document.dispatchEvent(new CustomEvent("scroll")); document.getElementById("messenger").dispatchEvent(new CustomEvent('adjust-scroll'));
}); });
return { getUrl }; return { getUrl };

View file

@ -7,11 +7,13 @@ const initScroll = (elementId) => {
} }
const isBottom = () => { const isBottom = () => {
return el.scrollHeight - el.clientHeight <= el.scrollTop + 1; if (el) {
return el.scrollHeight - el.clientHeight <= el.scrollTop + 1;
}
} }
const adjustScroll = () => { const adjustScroll = () => {
if (isBottom()) { if (el) {
el.scrollTo({ el.scrollTo({
top: el.scrollHeight - el.clientHeight, top: el.scrollHeight - el.clientHeight,
behavior: 'smooth' behavior: 'smooth'

View file

@ -1,5 +1,5 @@
import onDrop from "./control/drop.js"; import onDrop from "./control/drop.js";
import adjustScroll from "./control/scroll.js"; import initScroll from "./control/scroll.js";
import WS from "./ws.js"; import WS from "./ws.js";
import Input from "./input.js"; import Input from "./input.js";
@ -22,24 +22,34 @@ const Messenger = {
Vue.onMounted(() => { 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; person.value = update;
} }
else if (message.content) else if (update.content)
{ {
messages.value.push(update); messages.value.push(update);
} }
else 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 }; return { person, messages, onDrop };
@ -67,6 +77,3 @@ const Messenger = {
} }
export default Messenger; export default Messenger;
// Is called when window is about to close or reload
window.onbeforeunload = () => window.mainApi.send("message", {route: "window", open: true});

View file

@ -4,7 +4,7 @@ const { contextBridge, ipcRenderer } = require("electron");
const validFromMainChannels = [ const validFromMainChannels = [
"set-account", "set-account",
"update", "message",
"ws-status", "ws-status",
"record", "record",
"playback" "playback"

View file

@ -5,13 +5,22 @@ const { backgroundMitt, ipcEmit } = require("./utils/emitter");
const { connectToPlatform, disconnectFromPlatform } = require("./io"); const { connectToPlatform, disconnectFromPlatform } = require("./io");
const { initAudio, terminateAudio, playback, streamState } = require("./audio"); const { initAudio, terminateAudio, playback, streamState } = require("./audio");
let ui;
const messageQueue = []; const messageQueue = [];
let processContentId; 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)); backgroundMitt.on("message", (message) => messageQueue.push(message));
function handleUpdateQueue() function handleMessageQueue()
{ {
if (!streamState.pb && !streamState.rec) if (!streamState.pb && !streamState.rec)
{ {
@ -19,15 +28,28 @@ function handleUpdateQueue()
if (update) if (update)
{ {
if (update.title) if (update.person)
{ {
new Notification(update).show(); ui = update;
} }
else if (update.audio) else if (update.name)
{ {
playback(update); ui.person = update;
} }
else { ipcEmit("update", update); } else if (update.content)
{
ui.messages.push(update);
}
else if (update.category)
{
ui.messages[ui.messages.length - 1].content.push(update);
}
else
{
new Notification(update).show(); return;
}
ipcEmit("message", update);
} }
} }
} }
@ -36,7 +58,7 @@ function launchSession(account)
{ {
connectToPlatform(account); connectToPlatform(account);
// initAudio(); // initAudio();
processContentId = setInterval(handleUpdateQueue, 100); processContentId = setInterval(handleMessageQueue, 100);
} }
function endSession() function endSession()
@ -46,5 +68,11 @@ function endSession()
disconnectFromPlatform(); disconnectFromPlatform();
} }
ipcMain.on("messenger", () => {
if (ui) {
ipcEmit("message", ui);
}
});
exports.launchSession = launchSession; exports.launchSession = launchSession;
exports.endSession = endSession; exports.endSession = endSession;