2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-05 13:10:57 +00:00

Prevent dashboard updates if tab not visible (#9924)

* Prevent dashboard updates if tab not visible

* Uncomment code
This commit is contained in:
Oliver
2025-07-01 21:59:53 +10:00
committed by GitHub
parent 2d03d1d7eb
commit 803b688ed7
2 changed files with 12 additions and 6 deletions

View File

@ -9,6 +9,7 @@ import type { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
import { navigateToLink } from '@lib/functions/Navigation';
import type { InvenTreeIconType } from '@lib/types/Icons';
import { useDocumentVisibility } from '@mantine/hooks';
import { useApi } from '../../../contexts/ApiContext';
import { InvenTreeIcon } from '../../../functions/icons';
import { useUserState } from '../../../states/UserState';
@ -32,15 +33,20 @@ function QueryCountWidget({
const api = useApi();
const user = useUserState();
const navigate = useNavigate();
const visibility = useDocumentVisibility();
const modelProperties = ModelInformationDict[modelType];
const query = useQuery({
queryKey: ['dashboard-query-count', modelType, params],
enabled: user.hasViewPermission(modelType),
queryKey: ['dashboard-query-count', modelType, params, visibility],
enabled: user.hasViewPermission(modelType) && visibility === 'visible',
refetchOnMount: true,
refetchInterval: 5 * 60 * 1000, // 5 minutes
refetchInterval: 10 * 60 * 1000, // 10 minute refetch interval
queryFn: () => {
if (visibility !== 'visible') {
return null;
}
return api
.get(apiUrl(modelProperties.api_endpoint), {
params: {

View File

@ -59,7 +59,7 @@ export function Header() {
{ open: openNotificationDrawer, close: closeNotificationDrawer }
] = useDisclosure(false);
const { isLoggedIn, isStaff } = useUserState();
const { isLoggedIn } = useUserState();
const [notificationCount, setNotificationCount] = useState<number>(0);
const globalSettings = useGlobalSettingsState();
@ -71,10 +71,10 @@ export function Header() {
// Fetch number of notifications for the current user
const notifications = useQuery({
queryKey: ['notification-count'],
queryKey: ['notification-count', visibility],
enabled: isLoggedIn() && visibility === 'visible',
queryFn: async () => {
if (!isLoggedIn()) {
if (!isLoggedIn() || visibility != 'visible') {
return null;
}