Refactoring

This commit is contained in:
syuilo 2020-11-03 15:59:13 +09:00
parent ab166959a4
commit e2a9a0ff3d
4 changed files with 23 additions and 66 deletions

View file

@ -15,7 +15,8 @@
<script lang="ts"> <script lang="ts">
import { defineAsyncComponent, defineComponent } from 'vue'; import { defineAsyncComponent, defineComponent } from 'vue';
import { popups, uploads, pendingApiRequestsCount } from '@/os'; import { stream, sound, popup, popups, uploads, pendingApiRequestsCount } from '@/os';
import { store } from '@/store';
export default defineComponent({ export default defineComponent({
components: { components: {
@ -24,6 +25,27 @@ export default defineComponent({
}, },
setup() { setup() {
const onNotification = notification => {
if (store.state.i.mutingNotificationTypes.includes(notification.type)) return;
if (document.visibilityState === 'visible') {
stream.send('readNotification', {
id: notification.id
});
popup(import('@/components/toast.vue'), {
notification
}, {}, 'closed');
}
sound('notification');
};
if (store.getters.isSignedIn) {
const connection = stream.useSharedConnection('main', 'UI');
connection.on('notification', onNotification);
}
return { return {
uploads, uploads,
popups, popups,

View file

@ -63,7 +63,6 @@ export default defineComponent({
host: host, host: host,
pageInfo: null, pageInfo: null,
pageKey: 0, pageKey: 0,
connection: null,
menuDef: sidebarDef, menuDef: sidebarDef,
wallpaper: localStorage.getItem('wallpaper') != null, wallpaper: localStorage.getItem('wallpaper') != null,
faPlus, faPencilAlt, faChevronLeft, faBars, faCircle faPlus, faPencilAlt, faChevronLeft, faBars, faCircle
@ -107,11 +106,6 @@ export default defineComponent({
document.documentElement.style.overflowY = 'hidden'; document.documentElement.style.overflowY = 'hidden';
document.documentElement.style.scrollBehavior = 'auto'; document.documentElement.style.scrollBehavior = 'auto';
window.addEventListener('wheel', this.onWheel); window.addEventListener('wheel', this.onWheel);
if (this.$store.getters.isSignedIn) {
this.connection = os.stream.useSharedConnection('main', 'UI');
this.connection.on('notification', this.onNotification);
}
}, },
mounted() { mounted() {
@ -143,23 +137,6 @@ export default defineComponent({
os.post(); os.post();
}, },
onNotification(notification) {
if (this.$store.state.i.mutingNotificationTypes.includes(notification.type)) {
return;
}
if (document.visibilityState === 'visible') {
os.stream.send('readNotification', {
id: notification.id
});
os.popup(import('@/components/toast.vue'), {
notification
}, {}, 'closed');
}
os.sound('notification');
},
async addColumn(ev) { async addColumn(ev) {
const columns = [ const columns = [
'widgets', 'widgets',

View file

@ -91,7 +91,6 @@ export default defineComponent({
host: host, host: host,
pageKey: 0, pageKey: 0,
pageInfo: null, pageInfo: null,
connection: null,
isDesktop: window.innerWidth >= DESKTOP_THRESHOLD, isDesktop: window.innerWidth >= DESKTOP_THRESHOLD,
menuDef: sidebarDef, menuDef: sidebarDef,
navHidden: false, navHidden: false,
@ -141,9 +140,6 @@ export default defineComponent({
created() { created() {
document.documentElement.style.overflowY = 'scroll'; document.documentElement.style.overflowY = 'scroll';
this.connection = os.stream.useSharedConnection('main', 'UI');
this.connection.on('notification', this.onNotification);
if (this.$store.state.deviceUser.widgets.length === 0) { if (this.$store.state.deviceUser.widgets.length === 0) {
this.$store.commit('deviceUser/setWidgets', [{ this.$store.commit('deviceUser/setWidgets', [{
name: 'calendar', name: 'calendar',
@ -234,23 +230,6 @@ export default defineComponent({
} }
}], e); }], e);
}, },
onNotification(notification) {
if (this.$store.state.i.mutingNotificationTypes.includes(notification.type)) {
return;
}
if (document.visibilityState === 'visible') {
os.stream.send('readNotification', {
id: notification.id
});
os.popup(import('@/components/toast.vue'), {
notification
}, {}, 'closed');
}
os.sound('notification');
},
} }
}); });
</script> </script>

View file

@ -42,7 +42,6 @@ export default defineComponent({
host: host, host: host,
pageKey: 0, pageKey: 0,
pageInfo: null, pageInfo: null,
connection: null,
faLayerGroup, faBars, faBell, faHome, faCircle, faLayerGroup, faBars, faBell, faHome, faCircle,
}; };
}, },
@ -70,9 +69,6 @@ export default defineComponent({
created() { created() {
document.documentElement.style.overflowY = 'scroll'; document.documentElement.style.overflowY = 'scroll';
this.connection = os.stream.useSharedConnection('main', 'UI');
this.connection.on('notification', this.onNotification);
}, },
methods: { methods: {
@ -94,23 +90,6 @@ export default defineComponent({
onTransition() { onTransition() {
if (window._scroll) window._scroll(); if (window._scroll) window._scroll();
}, },
onNotification(notification) {
if (this.$store.state.i.mutingNotificationTypes.includes(notification.type)) {
return;
}
if (document.visibilityState === 'visible') {
os.stream.send('readNotification', {
id: notification.id
});
os.popup(import('@/components/toast.vue'), {
notification
}, {}, 'closed');
}
os.sound('notification');
},
} }
}); });
</script> </script>