mirror of
https://github.com/Gimanh/taskview-community.git
synced 2026-09-11 13:29:17 +00:00
fix: reload main screen when become active
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "taskview-ce-api-server",
|
||||
"version": "1.48.3",
|
||||
"version": "1.48.4",
|
||||
"scripts": {
|
||||
"dev": "bun run --watch ./server.ts",
|
||||
"start": "NODE_ENV=production node ./dist/taskview-server.js",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "taskview-ce-monorepo",
|
||||
"version": "1.48.3",
|
||||
"version": "1.48.4",
|
||||
"private": true,
|
||||
"description": "TaskView CE monorepo containing web, API, and packages",
|
||||
"workspaces": [
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"name": "web-nuxt-ui",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"version": "1.48.3",
|
||||
"version": "1.48.4",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build:packages": "pnpm --filter taskview-db-schemas build && pnpm --filter taskview-api build",
|
||||
|
||||
@@ -39,10 +39,22 @@
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import TvCollapseSidebarDesktop from '@/components/features/base/TvCollapseSidebarDesktop.vue'
|
||||
import { useLsRef } from '@/composables/useLsRef'
|
||||
import { useRefreshOnResume } from '@/composables/useRefreshOnResume'
|
||||
import { useBaseScreenStore } from '@/stores/base-screen.store'
|
||||
import { useCollaborationStore } from '@/stores/collaboration.store'
|
||||
import DesktopScreen from './screen-main/DesktopScreen.vue'
|
||||
import DashboardList from './screen-main/DashboardList.vue'
|
||||
|
||||
const { t } = useI18n()
|
||||
|
||||
const view = useLsRef<'list' | 'widgets'>('main-screen-view', 'list')
|
||||
|
||||
const baseScreenStore = useBaseScreenStore()
|
||||
const collaborationStore = useCollaborationStore()
|
||||
|
||||
useRefreshOnResume(() => {
|
||||
baseScreenStore.fetchAllState()
|
||||
baseScreenStore.fetchAllAvailableLists()
|
||||
collaborationStore.fetchAllCollaborationUsers()
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import { onScopeDispose } from 'vue'
|
||||
import { useEventListener } from '@vueuse/core'
|
||||
import { App } from '@capacitor/app'
|
||||
|
||||
export function useRefreshOnResume(onResume: () => void) {
|
||||
let last = 0
|
||||
const trigger = () => {
|
||||
const now = Date.now()
|
||||
if (now - last < 1000) return
|
||||
last = now
|
||||
onResume()
|
||||
}
|
||||
|
||||
useEventListener(document, 'visibilitychange', () => {
|
||||
if (!document.hidden) trigger()
|
||||
})
|
||||
|
||||
let remove: (() => void) | undefined
|
||||
App.addListener('appStateChange', ({ isActive }) => {
|
||||
if (isActive) trigger()
|
||||
}).then((handle) => {
|
||||
remove = () => handle.remove()
|
||||
})
|
||||
|
||||
onScopeDispose(() => remove?.())
|
||||
}
|
||||
Reference in New Issue
Block a user