fix: stabilize the header on first paint
Pass the installed version with the startup language so the renderer can display it before asynchronous initialization. Seed and start the upload sparkline immediately, keep a fixed update-action slot across all update states, and remove the delayed automatic update check. Add first-frame regression coverage for version, speed baseline, update geometry, and startup query behavior.
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
(function (root) {
|
||||
'use strict';
|
||||
|
||||
function createInitialSpeedHistoryState() {
|
||||
return { display: 0, history: [0, 0] };
|
||||
}
|
||||
|
||||
function updateSpeedHistory(state, target, maxSamples = 160) {
|
||||
const nextTarget = Number.isFinite(Number(target)) ? Math.max(0, Number(target)) : 0;
|
||||
const previous = Number.isFinite(Number(state.display)) ? Math.max(0, Number(state.display)) : 0;
|
||||
@@ -14,7 +18,7 @@
|
||||
return state;
|
||||
}
|
||||
|
||||
const api = { updateSpeedHistory };
|
||||
const api = { updateSpeedHistory, createInitialSpeedHistoryState };
|
||||
if (typeof module !== 'undefined' && module.exports) module.exports = api;
|
||||
else if (root) root.SpeedHistory = api;
|
||||
})(typeof window !== 'undefined' ? window : this);
|
||||
|
||||
@@ -8,6 +8,11 @@ function resolveStartupLanguage(config) {
|
||||
return config && config.globalSettings && config.globalSettings.language === 'de' ? 'de' : 'en';
|
||||
}
|
||||
|
||||
function createStartupQuery(config, version) {
|
||||
const normalizedVersion = /^\d+\.\d+\.\d+$/.test(String(version || '').trim()) ? String(version).trim() : '';
|
||||
return { language: resolveStartupLanguage(config), version: normalizedVersion };
|
||||
}
|
||||
|
||||
function createStartupWindow(BrowserWindow, options) {
|
||||
const window = new BrowserWindow({ ...options, show: false });
|
||||
window.once('ready-to-show', () => {
|
||||
@@ -22,4 +27,4 @@ function createStartupWindow(BrowserWindow, options) {
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = { configureStartupRenderer, createStartupWindow, resolveStartupLanguage };
|
||||
module.exports = { configureStartupRenderer, createStartupWindow, resolveStartupLanguage, createStartupQuery };
|
||||
|
||||
Reference in New Issue
Block a user