Reset app initial load time on page reload
This commit is contained in:
@@ -26,6 +26,7 @@ import { useUpdateChecker } from '@/features/app-updates/hooks/useUpdateChecker.
|
||||
import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts';
|
||||
import { getErrorMessage, noOp } from '@/lib/HelperFunctions.ts';
|
||||
import { AppStorage } from '@/lib/storage/AppStorage.ts';
|
||||
import { BrowserUtil } from '@/lib/BrowserUtil.ts';
|
||||
|
||||
const disabledUpdateCheck = () => Promise.resolve();
|
||||
|
||||
@@ -33,7 +34,9 @@ const FORCED_REFRESH_THRESHOLD = d(30).seconds.inWholeMilliseconds;
|
||||
|
||||
const INITIAL_LOAD_TIMESTAMP_KEY = 'webUIInitialLoadTimestamp';
|
||||
|
||||
AppStorage.session.setItemIfMissing(INITIAL_LOAD_TIMESTAMP_KEY, Date.now());
|
||||
if (BrowserUtil.isActualPageLoad()) {
|
||||
AppStorage.session.setItem(INITIAL_LOAD_TIMESTAMP_KEY, Date.now());
|
||||
}
|
||||
|
||||
export const WebUIUpdateChecker = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
21
src/lib/BrowserUtil.ts
Normal file
21
src/lib/BrowserUtil.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (C) Contributors to the Suwayomi project
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
export class BrowserUtil {
|
||||
static isActualPageLoad(): boolean {
|
||||
const navEntries = performance.getEntriesByType('navigation');
|
||||
|
||||
if (!navEntries.length) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const { type } = navEntries[0] as PerformanceNavigationTiming;
|
||||
|
||||
return ['reload', 'navigate'].includes(type);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user