Update "initial load timestamp" on initial app load
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user