add profile, messages, and connectionStatus shared state
This commit is contained in:
parent
308dbe2b4e
commit
81b4d018fb
9 changed files with 44 additions and 17 deletions
18
src/render/shared/connectionStatus.ts
Normal file
18
src/render/shared/connectionStatus.ts
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
// shared
|
||||
import { ref } from "vue";
|
||||
|
||||
export const isAlive = ref(false);
|
||||
export const loading = ref(true);
|
||||
|
||||
export const setConnectionStatus: IpcListenerCallback<boolean | null> = (payload) => {
|
||||
if (payload) {
|
||||
isAlive.value = payload;
|
||||
} else {
|
||||
loading.value = true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
export default {
|
||||
isAlive
|
||||
};
|
||||
33
src/render/shared/messages.ts
Normal file
33
src/render/shared/messages.ts
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
// shared
|
||||
import { ref, Ref } from "vue";
|
||||
import useScroll from "@/render/composables/useScroll";
|
||||
|
||||
export const messages: Ref<Array<Message>> = ref([]);
|
||||
|
||||
export const setMessages: IpcListenerCallback<Array<Message>> = (payload) => {
|
||||
messages.value = payload as Array<Message>;
|
||||
}
|
||||
|
||||
export const addMessage: IpcListenerCallback<Message> = (payload) => {
|
||||
messages.value.push(payload as Message);
|
||||
}
|
||||
|
||||
export const updateMessage: IpcListenerCallback<Message> = (payload) => {
|
||||
const message = payload as Message;
|
||||
|
||||
let targetMessage = messages.value.filter((m: Message) => {
|
||||
return m.uid = message.uid;
|
||||
})[0];
|
||||
|
||||
if (targetMessage) {
|
||||
targetMessage = message;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default {
|
||||
messages,
|
||||
setMessages,
|
||||
addMessage,
|
||||
updateMessage
|
||||
};
|
||||
27
src/render/shared/profile.ts
Normal file
27
src/render/shared/profile.ts
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
// shared
|
||||
import { ref } from "vue";
|
||||
|
||||
export const profile = ref();
|
||||
|
||||
export const authComplete = ref(false);
|
||||
|
||||
export const setProfile: IpcListenerCallback<Profile | null> = (payload) => {
|
||||
payload ? profile.value = payload : clearProfile();
|
||||
showRender();
|
||||
};
|
||||
|
||||
export const clearProfile = () => {
|
||||
profile.value = null;
|
||||
};
|
||||
|
||||
export const showRender = () => {
|
||||
authComplete.value = true;
|
||||
};
|
||||
|
||||
export default {
|
||||
setProfile,
|
||||
clearProfile,
|
||||
profile,
|
||||
showRender,
|
||||
authComplete,
|
||||
};
|
||||
Loading…
Reference in a new issue