Update "initial load timestamp" on initial app load

This commit is contained in:
schroda
2025-10-15 23:48:57 +02:00
parent f36b39c685
commit f63c461fb3

View File

@@ -25,16 +25,21 @@ import { VersionUpdateInfoDialog } from '@/features/app-updates/components/Versi
import { useUpdateChecker } from '@/features/app-updates/hooks/useUpdateChecker.tsx'; import { useUpdateChecker } from '@/features/app-updates/hooks/useUpdateChecker.tsx';
import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts'; import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts';
import { getErrorMessage, noOp } from '@/lib/HelperFunctions.ts'; import { getErrorMessage, noOp } from '@/lib/HelperFunctions.ts';
import { AppStorage } from '@/lib/storage/AppStorage.ts';
const disabledUpdateCheck = () => Promise.resolve(); const disabledUpdateCheck = () => Promise.resolve();
const FORCED_REFRESH_THRESHOLD = d(30).seconds.inWholeMilliseconds; const FORCED_REFRESH_THRESHOLD = d(30).seconds.inWholeMilliseconds;
const INITIAL_LOAD_TIMESTAMP_KEY = 'webUIInitialLoadTimestamp';
AppStorage.session.setItem(INITIAL_LOAD_TIMESTAMP_KEY, Date.now());
export const WebUIUpdateChecker = () => { export const WebUIUpdateChecker = () => {
const { t } = useTranslation(); const { t } = useTranslation();
const [webUIVersion, setWebUIVersion] = useLocalStorage<string>('webUIVersion'); const [webUIVersion, setWebUIVersion] = useLocalStorage<string>('webUIVersion');
const [initialLoadTimestamp, setInitialLoadTimestamp] = useSessionStorage<number>('webUIInitialLoadTimestamp'); const [initialLoadTimestamp] = useSessionStorage<number>(INITIAL_LOAD_TIMESTAMP_KEY, Date.now());
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const { const {
@@ -74,11 +79,6 @@ export const WebUIUpdateChecker = () => {
const newVersion = aboutWebUI?.tag; const newVersion = aboutWebUI?.tag;
const isSameAsCurrent = !newVersion || !webUIVersion || webUIVersion === newVersion; const isSameAsCurrent = !newVersion || !webUIVersion || webUIVersion === newVersion;
// Store initial load timestamp (once per session)
if (!initialLoadTimestamp) {
setInitialLoadTimestamp(Date.now());
}
// Calculate if forced refresh threshold has been met // Calculate if forced refresh threshold has been met
const timeSinceLoad = Date.now() - (initialLoadTimestamp ?? Date.now()); const timeSinceLoad = Date.now() - (initialLoadTimestamp ?? Date.now());
const shouldForceRefresh = timeSinceLoad >= FORCED_REFRESH_THRESHOLD; const shouldForceRefresh = timeSinceLoad >= FORCED_REFRESH_THRESHOLD;