remix-ide
Version:
Extendable Web IDE for Ethereum
23 lines (19 loc) • 758 B
JavaScript
module.exports = (fileManager) => {
// The event listener needs to be registered as early as possible, because the
// parent will send the message upon the "load" event.
let filesToLoad = null
let loadFilesCallback = function (files) { filesToLoad = files } // will be replaced later
window.addEventListener('message', function (ev) {
if (typeof ev.data === typeof [] && ev.data[0] === 'loadFiles') {
loadFilesCallback(ev.data[1])
}
}, false)
// Replace early callback with instant response
loadFilesCallback = function (files) {
fileManager.setBatchFiles(files)
}
// Run if we did receive an event from remote instance while starting up
if (filesToLoad !== null) {
fileManager.setBatchFiles(filesToLoad)
}
}