@jsxc/jsxc
Version:
Real-time XMPP chat application with video calls, file transfer and encrypted communication
35 lines (26 loc) • 842 B
text/typescript
import Client from './Client';
export default class PageVisibility {
private static isInitialized = false;
public static init() {
if (PageVisibility.isInitialized) {
return;
}
PageVisibility.isInitialized = true;
Client.getStorage().registerHook('isHidden', hidden => {
if (hidden && !document.hidden) {
Client.getStorage().setItem('isHidden', document.hidden);
}
});
function visibilityChangeHandler() {
Client.getStorage().setItem('isHidden', document.hidden);
}
$(document).on('visibilitychange', visibilityChangeHandler);
visibilityChangeHandler();
}
public static isHidden() {
return Client.getStorage().getItem('isHidden');
}
public static isVisible() {
return !PageVisibility.isHidden();
}
}