bux fixes, profile initials

This commit is contained in:
Andrew Gundersen 2021-11-18 09:42:05 -06:00
commit ccb07d594b
12 changed files with 69 additions and 31 deletions

View file

@ -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);

View file

@ -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)

View file

@ -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: `
<div :class="'bubble ' + modifier + '-bubble ' + modifier +'-'+ child">
{{ text }}

View file

@ -21,7 +21,7 @@ const Context =
<span :class="'context ' + modifier + '-context'">
<div
v-if="avatar != 'False'"
v-show="avatar"
class="context-avatar"
:class="{ audio: playback }"
>

View file

@ -95,7 +95,6 @@ function draggify(elementId, margin) {
const onMouseUp = (e) => {
e.preventDefault();
console.log("onMouseUp");
window.removeEventListener('mousemove', onMouseMove);
window.removeEventListener('mouseup', onMouseUp);

View file

@ -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 {

View file

@ -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' }"
>
<div id="input-icon"></div>
<div id="input-icon">{{ initials }}</div>
<input
id="input-text" type="text"
@ -35,5 +41,17 @@ const Input =
</div> `
}
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;

View file

@ -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 };
},

View file

@ -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: `
<Settings />
<WS />
<Input/>
<Input :person="person" />
<div id="messenger">
<Message

View file

@ -9,7 +9,6 @@ const WS =
window.mainApi.on("ws-status", (val) => {
status.value = val;
console.log(status.value);
});
});

View file

@ -50,4 +50,4 @@ contextBridge.exposeInMainWorld(
ipcRenderer.removeAllListeners(channel);
}
}
);
);

View file

@ -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);