feat: Add new emoji assets and an UpdateBanner component.
Some checks failed
Build and Release / build-and-release (push) Failing after 3m28s
Some checks failed
Build and Release / build-and-release (push) Failing after 3m28s
This commit is contained in:
36
packages/platform-web/src/idle.js
Normal file
36
packages/platform-web/src/idle.js
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Web platform idle detection using Page Visibility API.
|
||||
* Provides a simplified version of the Electron idle API.
|
||||
*/
|
||||
let idleCallback = null;
|
||||
let lastActiveTime = Date.now();
|
||||
|
||||
function handleVisibilityChange() {
|
||||
if (!idleCallback) return;
|
||||
if (document.hidden) {
|
||||
idleCallback({ isIdle: true });
|
||||
} else {
|
||||
lastActiveTime = Date.now();
|
||||
idleCallback({ isIdle: false });
|
||||
}
|
||||
}
|
||||
|
||||
export default {
|
||||
getSystemIdleTime() {
|
||||
// Return seconds since last activity (approximation using visibility)
|
||||
if (document.hidden) {
|
||||
return Math.floor((Date.now() - lastActiveTime) / 1000);
|
||||
}
|
||||
return 0;
|
||||
},
|
||||
|
||||
onIdleStateChanged(callback) {
|
||||
idleCallback = callback;
|
||||
document.addEventListener('visibilitychange', handleVisibilityChange);
|
||||
},
|
||||
|
||||
removeIdleStateListener() {
|
||||
idleCallback = null;
|
||||
document.removeEventListener('visibilitychange', handleVisibilityChange);
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user