diff --git a/neode-ui/src/App.vue b/neode-ui/src/App.vue index e69b2be8..da444850 100644 --- a/neode-ui/src/App.vue +++ b/neode-ui/src/App.vue @@ -9,6 +9,12 @@ + + + + + + appStore.isAuthenticated, (authenticated) => { if (authenticated) { messageToast.startPolling() + screensaverStore.resetInactivityTimer() } else { messageToast.stopPolling() toastMessage.value = { show: false, text: '' } + screensaverStore.clearInactivityTimer() + screensaverStore.deactivate() } }, { immediate: true }) +// Reset screensaver inactivity on user activity (when authenticated) +function onUserActivity() { + if (appStore.isAuthenticated && !screensaverStore.isActive) { + screensaverStore.resetInactivityTimer() + } +} + function onKeyDown(e: KeyboardEvent) { const isMac = navigator.platform.toUpperCase().includes('MAC') const mod = isMac ? e.metaKey : e.ctrlKey @@ -98,6 +118,10 @@ const isReady = ref(false) */ onMounted(async () => { window.addEventListener('keydown', onKeyDown) + window.addEventListener('mousemove', onUserActivity) + window.addEventListener('mousedown', onUserActivity) + window.addEventListener('keydown', onUserActivity) + window.addEventListener('touchstart', onUserActivity) const seenIntro = localStorage.getItem('neode_intro_seen') === '1' const isDirectRoute = route.path !== '/' @@ -114,6 +138,10 @@ onMounted(async () => { onBeforeUnmount(() => { window.removeEventListener('keydown', onKeyDown) + window.removeEventListener('mousemove', onUserActivity) + window.removeEventListener('mousedown', onUserActivity) + window.removeEventListener('keydown', onUserActivity) + window.removeEventListener('touchstart', onUserActivity) }) /** diff --git a/neode-ui/src/components/AnimatedLogo.vue b/neode-ui/src/components/AnimatedLogo.vue index ed4b2ad3..09b91f24 100644 --- a/neode-ui/src/components/AnimatedLogo.vue +++ b/neode-ui/src/components/AnimatedLogo.vue @@ -1,20 +1,13 @@ diff --git a/neode-ui/src/components/AppLauncherOverlay.vue b/neode-ui/src/components/AppLauncherOverlay.vue new file mode 100644 index 00000000..1d66b9a2 --- /dev/null +++ b/neode-ui/src/components/AppLauncherOverlay.vue @@ -0,0 +1,111 @@ +