add user-auth and init-session events

This commit is contained in:
riqo 2021-05-25 09:01:28 -05:00
commit ea3fc85371
8 changed files with 174 additions and 77 deletions

View file

@ -35,11 +35,13 @@
import { defineComponent, onMounted, onUnmounted, ref } from "vue";
import { IpcRendererEvent } from "electron";
import { useIpc } from "@/modules/ipc";
import { useAuth } from "@/modules/auth"
import Splash from "@/components/splash.vue";
import Messenger from "@/components/messenger.vue";
import Login from "@/components/login.vue";
export default defineComponent({
components: {
@ -49,7 +51,10 @@ export default defineComponent({
},
setup() {
const { post } = useIpc();
const { post, invoke } = useIpc();
const { user } = useAuth();
// Whether browser has received user info yet.
const ready = ref(false);
@ -58,18 +63,19 @@ export default defineComponent({
const profile = ref(false);
// New messages that browser missed while closed.
const newMessages = ref([])
const newMessages = ref([]);
// Receive updated information about the session.
const updateState = (_event: IpcRendererEvent, payload: any) => {
console.log('YAYAYAYAYA');
console.log("APP:Received updated profile and new messages: \n" +
` profile: ${payload.message.profile}\n` +
` new: ${payload.message.newMessages}`)
` new: ${payload.message.newMessages}`);
if (payload.message.profile) {
console.log(`APP:Logged-in, showing Messenger View.`)
console.log(`APP:Logged-in, showing Messenger View.`);
} else {
console.log(`APP:Logged-out, showing Login View.`)
console.log(`APP:Logged-out, showing Login View.`);
}
// Set profile and newMessages.
@ -81,8 +87,8 @@ export default defineComponent({
}
onMounted(() => {
console.log("APP:mounted.")
onMounted(async () => {
console.log("APP:mounted.");
window.ipcRenderer.on("update-state", updateState)
window.ipcRenderer.on("update_available", () => {
console.log('testing auto update');
@ -91,11 +97,32 @@ export default defineComponent({
window.ipcRenderer.on("update_downloaded", () => {
console.log('testing update download');
})
post("app-mounted", "")
post("app-mounted", "");
if(user.value.key) {
try {
const res = await invoke('user-auth', JSON.stringify(user.value));
profile.value = res;
} catch(e) {
profile.value = false;
console.log('[AUTH]', e);
} finally {
ready.value = true;
if (profile.value) {
// start session
post("init-session", user.value.email);
}
}
} else {
profile.value = false;
ready.value = true;
}
});
onUnmounted(() => {
window.ipcRenderer.removeAllListeners("update-state")
window.ipcRenderer.removeAllListeners("update-state");
})
return {