add instancesOpen to puter.js UI

This commit is contained in:
Nariman Jelveh
2025-09-24 17:03:36 -07:00
parent fa436a7775
commit 8b7e764af9
2 changed files with 26 additions and 0 deletions
+14
View File
@@ -257,6 +257,20 @@ const ipc_listener = async (event, handled) => {
}, '*');
}
//--------------------------------------------------------
// getInstancesOpen
//--------------------------------------------------------
else if(event.data.msg === 'getInstancesOpen'){
// count open windows of this app
let instances_open = $('.window-app[data-app_uuid="'+app_uuid+'"]').length;
// send number of open instances of this app
target_iframe.contentWindow.postMessage({
original_msg_id: msg_id,
msg: 'instancesOpenSucceeded',
instancesOpen: instances_open,
}, '*');
}
//--------------------------------------------------------
// socialShare
//--------------------------------------------------------
else if(event.data.msg === 'socialShare' && event.data.url !== undefined){
+12
View File
@@ -395,6 +395,12 @@ class UI extends EventListener {
this.#callbackFunctions[e.data.original_msg_id](appDataItem);
}
}
// instancesOpenSucceeded
else if(e.data.msg === 'instancesOpenSucceeded'){
if(e.data.original_msg_id && this.#callbackFunctions[e.data.original_msg_id]){
this.#callbackFunctions[e.data.original_msg_id](e.data.instancesOpen);
}
}
// readAppDataFileSucceeded
else if(e.data.msg === 'readAppDataFileSucceeded'){
let appDataItem = new FSItem(e.data.item);
@@ -657,6 +663,12 @@ class UI extends EventListener {
})
}
instancesOpen = function(callback) {
return new Promise((resolve) => {
this.#postMessageWithCallback('getInstancesOpen', resolve, { });
})
}
socialShare = function(url, message, options, callback) {
return new Promise((resolve) => {
this.#postMessageWithCallback('socialShare', resolve, { url, message, options });